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

news/2025/1/13 17:28:50/文章来源:https://www.cnblogs.com/axioslancer/p/18242999

仅有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.hqwc.cn/news/723325.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

如果您需要代写公式, 请联系我。 龙哥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 的代码…

linux部署简单部署

.NetCore程序的linux部署说明 主要内容 本篇介绍在linux部署.netcore程序的几种方式,包括传统方式,服务打包,docker部署等。 系统环境/工具腾讯云服务器操作系统:centos8.2 地址:124.221.86.194 用户名:root 密码:hyt-linux12345!远程连接工具:xShell6 数据库使用maria…

ASP

asp.net core 3.0 学习笔记01 2022.04.29~05.02 本篇为基本入门,介绍一些基本概念和配置,对asp.net core建立一个基本的概念。 1.创建一个Web项目本质上来说asp.net core web 项目其实就是一个控制台程序public class Program {public static void Main(string[] args){Creat…

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…

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

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

扫描线

扫描线 引入 扫描线一般运用在图形上面,它和它的字面意思十分相似,就是一条线在整个图上扫来扫去,它一般被用来解决图形面积、周长,以及二维数点等问题。 面积问题 例题1:【模板】扫描线 想象有一条线从下往上扫,会将整个图像依次扫描。我们只需要计算出每一条矩形(即图…

笛卡尔树

笛卡尔树 引入 笛卡尔树是一种二叉树,每一个节点由一个键值二元组\((k,w)\)构成。要求k满足二叉搜索树的性质,而w满足堆的性质。 一个有趣的事实是,如果笛卡尔树的\(k,w\)键值确定,且k互不相同,w互不相同,那么这个笛卡尔树的结构是唯一的。上面这棵笛卡尔树相当于把数组元…

虚树

虚树 什么是虚树 虚树常常被用在树形\(dp\)中。当一次询问仅仅涉及到整棵树中少量节点时为每次询问都对整棵树进行\(dp\)在时间上是不可接受的。此时,我们建立一棵仅仅包含部分关键节点的虚树,将非关键节点构成的链简化成边或是剪去,在虚树上进行\(dp\)。 虚树包含所有的询问…

矩阵乘法与矩阵快速幂

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{…

状压dp

状压dp 1.状态压缩 状态压缩就是使用某种方法,以最小的代价来表示某种状态,通常是用一串01数字(二进制数)来表示各个点的状态。这就要使用状态压缩的对象的点的状态只有两种:0和1。 2.使用条件 1.解法需要保存一定的状态数据(表示一种状态的一个数据值),每个状态通常情…