由于vaultwarden本身访问就被限定为只能https、localhost(127.0.01)访问。由于局域网使用,所以没法使用正常的外网 域名签名从而使用https://域名访问。再者在局域网中使用 vaultwarden所在物理机地址和浏览器所在物理机又不是同一台机器所以又没法使用localhost访问,这就非常奇葩了。所以现在的方案是:给我们的局域网ip地址签名+vaultwarden开启自身的tls认证(官方说目前不稳定,但是我没用出什么问题来)的方式就可以使用https+vaultwarden的局域网ip地址访问了。
- 给局域网ip地址签名,即vaultwarden所在的物理机ip地址,比如我的vaultwarden是部署在ip地址为192.168.10.223的主机上。使用工具:mkcert(github地址:FiloSottile/mkcert,项目有软件下载连接)。
#1.首先使用mkcert在当前物理机上安装根密钥
PS C:\Users\Administrator\Downloads> .\mkcert-v1.4.4-windows-amd64.exe -install
Created a new local CA 💥
The local CA is now installed in the system trust store!
#2.给需要的ip地址(我这里是192.168.10.223)签名,会在当前目录下生成(倒数第二行文本提示的生成路径):
PS C:\Users\Administrator\Downloads> .\mkcert-v1.4.4-windows-amd64.exe 192.168.10.223
Created a new certificate valid for the following names 📜
- "192.168.10.223"
The certificate is at "./192.168.10.223.pem" and the key at "./192.168.10.223-key.pem" ✅
It will expire on 26 December 2027 🗓
#3.查看根密钥的位置,后面会用到:
PS C:\Users\Administrator\Downloads> .\mkcert-v1.4.4-windows-amd64.exe -CAROOT
C:\Users\Administrator\AppData\Local\mkcert
- 开启vaultwarden的自身的tls。现在我们拿到了ip签名证书:192.168.10.223.pem,192.168.10.223-key.pem。以及根证书:C:\Users\Administrator\AppData\Local\mkcert\rootCA.pem 将192.168.10.223.pem重命名为certs.pem, 192.168.10.223-key.pem重命名为key.pem。这里其实改不改都可以,重要的是要放到vaultwarden容器中去。我的vaultwarden容器配置如下:
networks:
1panel-network:
external: true
services:
bitwarden:
container_name: ${CONTAINER_NAME}
deploy:
resources:
limits:
cpus: ${CPUS}
memory: ${MEMORY_LIMIT}
image: vaultwarden/server:1.34.3-alpine
labels:
createdBy: Apps
networks:
- 1panel-network
environment:
- ROCKET_TLS={certs="/data/certs.pem",key="/data/key.pem"} # 我这里放到了容器中的/data目录下,也就是物理机的./data文件夹中
ports:
- ${HOST_IP}:${PANEL_APP_PORT_HTTP}:80
restart: always
volumes:
- ./data:/data
现在就可以使用https://192.168.10.223:40031访问vaultwarden了,只不过会提示不安全,解决这个提示很简单,就是将上面拿到的根签名导入到浏览器中,或者安装到浏览器所在的物理机中。使用愉快