本文介绍如何在truenas/freenas系统的jail中搭建bitwarden密码管理服务端。

  Bitwarden是一款免费开源的密码管理软件,用户可在加密的保管库中存储敏感信息(例如网站登录凭据)。Bitwarden平台提供有多种客户端应用程序,包括网页用户界面、桌面应用,浏览器扩展、移动应用以及命令行界面。你可以使用官方提供的云托管服务(https://vault.bitwarden.com),也支持自行部署解决方案。由于博主不喜欢将数据存储在他人服务器上(虽然理论上是安全的),因此就在自己的NAS里搭建bitwarden服务。下面将具体步骤分享给大家。

  一、准备工作

  首先当然是先建一个jail,不会的请看《使用JAIL自建服务教程之一:JAIL创建和优化》。

  二、安装

2021.08.21更新:有网友提醒,最近在软件源里无法找到bitwarden_rs,经查询发现项目已改名称,现在为vaultwarden,大家将以下的bitwarden_rs改为vaultwarden就可以了!

  1.安装bitwarden_rs

pkg install -y bitwarden_rs
sysrc bitwarden_rs_enable=YES
service bitwarden_rs start

  2.查看运行端口

sockstat | grep bitwarden
//显示:www bitwarden_ 50720 13 tcp4 *:8000 *:*

  3.设置反向代理

  (1)安装nginx

pkg install -y nginx
sysrc nginx_enable=YES
service nginx start

  (2)上传证书到jail中。由于bitwarden客户端对安全要求比较严格,需要中间证书,但是nginx并没有添加中间证书的参数。因此,你需要将中间证书的内容复制到域名证书后面。比如,我是从sslforfree上申请的证书,下载下来有三个文件:“certificate.crt”是域名证书,“private.key”是密钥,“ca_bundle.crt”是中间证书。用记事本打开“certificate.crt”和“ca_bundle.crt”,将“ca_bundle.crt”里面的所有内容复制到“certificate.crt”最后一行后面。

  (3)设置nginx配置文件

  打开“/usr/local/etc/nginx/nginx.conf”,找到server { }这一段,替换为如下内容(注意要将xxx.xxx.com改为你自己的域名):

server {
        listen 80;
        server_name xxx.xxx.com;
        return 301 https://$server_name$request_uri;
}

  接着在后面添加一段(注意要将ssl_certificate、ssl_certificate_key、server_name、proxy_pass改为你自己服务器的信息):

server {
        listen 443 ssl;
        ssl_certificate /usr/local/etc/ssl/certificate.crt;
        ssl_certificate_key /usr/local/etc/ssl/private.key;

        server_name xxx.xxx.com;

        location / {
                proxy_pass http://ip:8000;
        }

}

  重启nginx服务

service nginx restart

  接下来使用域名访问就可以了!

本文参考:https://hashbang0.com/2020/12/26/hosting-bitwarden_rs-on-freebsd/