密码服务器 | Docker系列
前言
本文介绍使用Vaultwarden
和Nginx
在Ubuntu系统上搭建密码服务器,请先根据本章前言完成环境的搭建。
Vaultwarden
网站:
Nginx
网站:
拉取镜像
docker pull vaultwarden/server
docker pull nginx
开放端口
端口类型 | 端口 | 端口用途 |
---|---|---|
TCP | 80 | 网页界面 |
TCP | 443 | 网页界面 |
配置文件
- 前往var目录:
cd /var
- 创建工作目录:
mkdir vaultwarden
- 进入工作目录:
cd vaultwarden
- 创建docker配置文件:
touch compose.yml
- 编辑docker配置文件:
nano compose.yml
- 创建nginx配置文件:
touch vaultwarden.conf
- 编辑nginx配置文件:
nano vaultwarden.conf
- 创建顶替nginx配置文件:
touch default
- 创建ssl目录:
mkdir ssl
- 进入ssl目录:
cd ssl
- 自签名openssl证书和私钥:
openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout privkey.key -out cert.crt -days 3650
compose.yml
yml
services:
vaultwarden:
image: vaultwarden/server
container_name: vaultwarden
environment:
- SIGNUPS_ALLOWED=true
volumes:
- ./data:/data
restart: always
nginx:
image: nginx
container_name: nginx-vaultwarden
volumes:
- ./vaultwarden.conf:/etc/nginx/conf.d/vaultwarden.conf:ro
- ./default:/etc/nginx/sites-available/default:ro
- ./ssl:/etc/nginx/ssl:ro
ports:
- "80:80"
- "443:443"
depends_on:
- vaultwarden
restart: always
vaultwarden.conf
nginx
server {
listen 80;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name _;
ssl_certificate /etc/nginx/ssl/cert.crt;
ssl_certificate_key /etc/nginx/ssl/privkey.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://vaultwarden:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
文件树
sh
│ compose.yml
│ default
│ vaultwarden.conf
│
└─ ssl
├─ cert.crt
└─ privkey.key
开始运行
- 前往工作目录:
cd /var/vaultwarden
- 开始运行:
docker compose up -d
或docker-compose up -d
- 在浏览器访问:
https://服务器ip地址
,进入页面。因为证书与私钥为自签名,浏览器会警告网页不安全,在浏览器中选择信任该网页,然后即可正常访问。
维护服务
停止服务
- 前往工作文件夹:
cd /var/vaultwarden
- 中止Docker容器:
docker compose down
或docker-compose down
压缩数据文件夹
- 前往工作目录:
cd /var/vaultwarden
- 压缩数据文件夹:
tar -czf data.tar.gz data/
解压缩数据文件夹
- 前往工作目录:
cd /var/vaultwarden
- 解压缩数据文件夹:
tar -xzf data.tar.gz data/