私有化部署bitwarden密码管理器(三)——nginx方式部署

随笔3个月前发布 三三客服
32 0 0

目录

私有化部署bitwarden密码管理器(一)——环境准备

私有化部署bitwarden密码管理器(二)——npm方式部署

私有化部署bitwarden密码管理器(三)——nginx方式部署

仅有IP无证书的环境部署bitwarden密码管理器

虽然使用npm方式部署比较简单,但是很多小伙伴可能没有一台带域名国外vps,接下来介绍仅有IP的Vps,如国内的服务器无域名证书或者是本地无外网的环境如:虚拟机、NAS、树莓派等环境部署bitwarden密码管理器。

部署Nginx

Nginx和Nginx Proxy Manager都是用于做反代作用的,不可共存
在服务器/usr/local/docker目录下新建nginx目录,在nginx目录下新建docker-compose.yml文件,内容如下:

version: '3'
services:
  nginx:
    image: nginx:stable-alpine-perl
    container_name: nginx
    restart: always
    ports:
      - 80:80
      - 443:443
      - 234:234
    volumes:
     - $PWD/nginx/html:/usr/share/nginx/html
     - $PWD/nginx/logs:/var/log/nginx
     - $PWD/nginx/conf.d:/etc/nginx/conf.d
     - $PWD/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
     - $PWD/nginx/ssl:/etc/nginx/ssl
    networks:
     - nginx_network  

networks:     #对上面使用到的网络名称进行声明
  nginx_network:  #网络名称前面会自带项目名称,(当前docker-compose.yml所在目录的名称),即项目名称_网络名称
    external: true  #如果不想加上项目名称,请设置external为true,这时就需要我们在启动服务之前,必须在外部使用命令去手动创建一个名叫nginx_network的网络(创建命令: docker network create -d bridge nginx_network)

在当前目录执行docker-compose up -d,服务器放行80,443的TCP端口

部署vaultwarden

在服务器/usr/local/docker目录下新建vaultwarden目录,在vaultwarden目录下新建docker-compose.yml文件,内容如下:

version: "3"

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    ports:
        - "235:80" #将宿主机8087端口映射到docker的80端口
        - "3012:3012"
    volumes:
      - $PWD/vw-data:/data
    environment:
      WEBSOCKET_ENABLED: "true" #是否开启WebSocket
      SIGNUPS_ALLOWED: "false"   #是否开启注册,自用的话自己搭建好注册后改成false
      WEB_VAULT_ENABLED: "true" #是否开启Web客户端
      ADMIN_TOKEN: "{你生成的安全密码}"   #后台登陆密码,建议openssl rand -base64 48 生成ADMIN_TOKEN确保安全,当前是没启用,如需启用去掉ADMIN_TOKEN前面的 # ,并生成安全密码
    networks:
      - nginx_network  

networks:     #对上面使用到的网络名称进行声明
  nginx_network:  #网络名称前面会自带项目名称,(当前docker-compose.yml所在目录的名称),即项目名称_网络名称
    external: true  #如果不想加上项目名称,请设置external为true,这时就需要我们在启动服务之前,必须在外部使用命令去手动创建一个名叫nginx_network的网络(创建命令: docker network create -d bridge nginx_network)

在当前目录执行docker-compose up -d部署成功

生成自签证书

由于仅有ip,vaultwarden只支持https,所以需要生成自签证书

编写配置文件和脚本

把以下三个文件放到一个文件夹里:

server_rootCA.csr.cnf

[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn

[dn]
C=CN
ST=A
L=A
O=A
OU=local_RootCA
emailAddress=.
CN = 192.168.1.129 #服务器ip或域名

v3.ext

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
IP = 192.168.1.129#服务器ip或域名

do.bat

openssl genrsa -out server_rootCA.key 2048
openssl req -x509 -new -nodes -key server_rootCA.key -sha256 -days 36500 -out server_rootCA.pem
openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config server_rootCA.csr.cnf
openssl x509 -req -in server.csr -CA server_rootCA.pem -CAkey server_rootCA.key -CAcreateserial -out server.crt -days 36500 -sha256 -extfile v3.ext

运行脚本,生成证书

1、运行 do.bat,会要求输入一次信息,这里就随便编一个虚假的机构名就可以了(比如 MiaoMiaoMiao),不用填 ip 地址或者域名啥的
2、生成的文件有 5 个,server.crtserver.key 这俩是要拿给 Bitwarden 用的,上传到$PWD/nginx/sslnginx的证书目录下
3、server\_rootCA.pem 复制到 Android 上,导入 CA 受信任的证书
4、server\_rootCA.pem 重命名为.cer,在 Windows 上,导入受信任的根证书颁发机构,这样等下配置好的 Bitwarden 就可以和客户端通信了

vaultwarden使用

官网地址:https://bitwarden.com/
vaultwarden在Windows,Linux,Mac,iPhone,Android以及Chrome等环境都可以正常使用,可以在官网下载相应环境的安装包就可以

1、浏览器插件使用,点击下载→[地址]
(https://microsoftedge.microsoft.com/addons/detail/jbkfoedolllekgbhcbcoahefnbanhhlh)
2、选择自托管,输入你的ip或者域名
私有化部署bitwarden密码管理器(三)——nginx方式部署

3、成功界面
私有化部署bitwarden密码管理器(三)——nginx方式部署

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...