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

news/2024/10/4 23:24:05

仅有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-perlcontainer_name: nginxrestart: alwaysports:- 80:80- 443:443- 234:234volumes:- $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/sslnetworks:- 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:latestcontainer_name: vaultwardenrestart: alwaysports:- "235:80" #将宿主机8087端口映射到docker的80端口- "3012:3012"volumes:- $PWD/vw-data:/dataenvironment:WEBSOCKET_ENABLED: "true" #是否开启WebSocketSIGNUPS_ALLOWED: "false"   #是否开启注册,自用的话自己搭建好注册后改成falseWEB_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或者域名
image

3、成功界面
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/44277.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

龙哥量化:诺曼底防线副图指标公式源码

如果您需要代写公式, 请联系我。 龙哥QQ:591438821 龙哥微信:Long622889VAR1:=(HHV(H,13)-LLV(L,13));VAR2:=(HHV(H,13)-C);VAR3:=(C-LLV(L,13));VAR4:=VAR2/VAR1*100-70;VAR5:=(C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100;VAR6:=(2*C+H+L)/4;VAR7:=SMA((VAR3/VAR1*100),3,1);…

【PB案例学习笔记】-05 图片浏览器

写在前面 这是PB案例学习笔记系列文章的第5篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project…

Cursor是什么?基于ChatGPT代码编辑器的cursor如何使用?VS Code如何迁移到Cursor的步骤

Cursor 是一个基于 Visual Studio Code(VS Code)技术构建的高级代码编辑器,专为提高编程效率并更深度地整合 AI 功能而设计。它不仅继承了 VS Code 的强大功能和用户界面,还增加了专门针对 AI 支持的特色功能。Cursor 是 VS Code 的一个分支,这意味着它基于 VS Code 的代码…

abp项目

abp项目.net版本升级 系统基于abp框架,.net版本为.net core 2.1,升级之后为.NET 6.0 1.升级项目的目标框架和依赖包项目列表如下升级顺序如下 HPE_ProjectManagement_WebApi.Web (需要修改的东西最多) HPE_ProjectManagement_WebApi.Utility HPE_ProjectManagement_WebApi.C…

Maven详解

1 maven介绍 1)为什么使用maven Maven是一个强大的项目管理和构建工具,它能够简化Java项目的构建、依赖管理和发布过程。以下是Maven的一些主要特点和功能:项目结构管理:Maven采用约定优于配置的原则,提供了标准的项目结构模板,使得开发人员可以快速创建和维护项目。 依赖…

代码随想录 算法训练营 d6 哈希表 Leetcode242 有效的字母异位词 Leetcode349 两个数组的交集 Leetcode202 快乐数Leetcode1 两数之和

哈希表 很重要 哈希表 哈希表 场景 一般哈希表都是用来快速判断一个元素是否出现集合里 一般来说 数组模拟 哈希set 哈希map 不同的场景当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。 但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组…

矩阵乘法与矩阵快速幂

1 矩阵乘法 1.定义 若矩阵A的大小为\(n \times m\),矩阵B的大小为\(m \times p\),则两个矩阵可以做乘法,得到的矩阵C的大小为\(n \times p\)。 \[A = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \end{bmatrix} \]\[B = \begin{…

Redis之哨兵模式

概述无哨兵模式的主从切换的方法是当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费时费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。 Redis从2.8开始正式提供了Sentinel(哨兵)架构来解决这个问题…