FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

2020-10-29 19:08:17 42点赞 320收藏 18评论

前言

自从将NAS升级为TS-453Dmini后,就总想在上面多折腾点东西。毕竟J4125的性能还算不错,作为一台7x24小时运行的设备,不榨干它的性能感觉有点不舒服。这次折腾我将目光投向了密码管理服务这一块。我相信有很多用户都在使用诸如1Password、LastPass 这样的密码管理服务来统一管理自己的密码。这里我选择Bitwarden的原因很简单,开源、免费,完全自主可控,而且功能强大。网上其实已经有一些教程教你如何在NAS上搭建Bitwarden服务。但是那些教程几乎都是群晖的,虽然和威联通的搭建方式差别大不,但是完全套用到威联通上还需要一定的消化理解。而且有些教程写的太简单的,部分关键步骤一带而过。本文结合我自身的条件,尽可能详细地讲述了在威联通NAS上自建Bitwarden服务的方法。如果大家都相似的需求,希望本文可以提供一些有用的信息。折腾门槛自然是有的,但是整个过程其实并不复杂。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

准备工作

想要在威联通NAS上部署Bitwarden,还需要一些先决条件。如果你不具备这些条件,或者没打算继续投入资金折腾,那么就没必要继续往下看了。这些先决条件就是:域名、证书和公网IP,没有公网IP还可以用其他方式实现内网穿透。
域名可以去腾讯云或者阿里云申请,现在域名都很便宜的,几十块钱就能买好几年。在阿里云或者腾讯云申请完域名后,就可以顺便在这里申请证书了,都是有免费的证书可以申请的。公网IP这个是比较麻烦的,各地不同运营商对公网IP的管控不一样,有些地方可能就是不给公网IP,那么就需要考虑内网穿透了。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

我的情况是我在很久之前就在阿里云申请了域名,然后证书也不是什么难事,但是我却没有公网IP。好在我有一个云服务器,可以用来进行内网穿透。所以在没有公网IP的时候,购买一个云服务器就是必要条件了。其实在威联通NAS上部署Bitwarden还是很简单的,但是要把这个服务用起来,就必须要以HTTPS的方式进行外网访问。为了实现这个目的,就需要域名、证书、公网IP(内网穿透)了。这样以来复杂程度一下子就提高了。
好了下面就详细讲述下,我在有一台威联通NAS、一个阿里云购买的域名、一个云服务器的前提下,如何实现利用Bitwarden搭建私有密码管理服务的吧。

SSL证书申请

因为我已经有域名了,而且域名本身也没什么好说的,所以域名的申请就略过了。Bitwarden强制要求使用HTPPS访问,HTTP下访问连登录和注册都没法完成。因此,我们需要申请SSL证书。SSL证书的免费申请方法有很多,如果你用的是阿里云或者腾讯云等服务,那么申请一个免费的SSL证书会变得更简单。下面以阿里云为例。
在产品里面搜索SSL证书,点击选购证书进入证书购买页面。看到默认的证书的价格是不是被吓到了,不用担心,点击单个域名,再点击DV域名级SSL,接着就会出现免费版,点击这个后,价格就会归零了,证书的有效期是一年,时间过了需要重新申请证书。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

不要犹豫,点击购买并付款,当然实际上支付的是零元,购买证书完毕后进入控制台进行证书申请。在申请页面主要是需要填写要绑定的域名,其他信息都可以不用修改。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

然后就到了验证页面,因为我们的证书和域名都是在阿里云申请的,所以在域名管理控制台可以看到已经自动添加了一条_dnsauth主机记录。再点击验证,就会提示域名验证成功,后面我们就可以使用这个域名以HTTPS的方式访问我们的网站服务了。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

证书申请完毕后,就可以点击下载将证书下载到本地已备后面使用。下载的时候,选择服务器类型为Apache的那个文件即可。解压证书压缩包可以看到里面有三个文件,其中两个文件才是后面我们真正需要的。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

Bitwarden服务

有了SSL证书之后,我们就可以着手在内网搭建起可以使用HTTPS访问的Bitwarden服务了。在威联通NAS上搭建Bitwarden最简单的方式当然是使用Docker了。打开威联通的Container Station,搜索Docker镜像Bitwarden,第一个结果就是Bitwardenrs/server,选择这个镜像安装。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

以Docker的方式安装Bitwarden过程非常简单,配置的时候只需要关注三个参数即可。一是配置内网访问的端口,可以任意设置(不要设置成已经使用的端口或者系统占用的端口),我这里设置成9000。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

二是映射Bitwarden的data目录。这里会保存Bitwarden运行中产生的各种数据。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

三是给Bitwarden设置SSL证书。在一个步骤中,我们映射了data目录,在这个目录下新建一个cert目录,并将上一节下载的文件解压,把XXXX.key和XXXX_public.crt这两个文件放到NAS的cert目录下,并添加环境变量ROCKET_TLS,内容为{certs=”/data/cert/XXXX_public.cer”,key=”/data/cert/XXXX.key”}。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

完成上面这三个步骤后,创建并运行Bitwarden Docker服务,稍等片刻,使用https://NASIP:9000这个地址访问,不出意外的话就可以看到我们在内网成功搭建的Bitwarden服务了。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

网上有一些群晖搭建Bitwarden的教程,是通过反向代理的方式实现HTTPS的访问。而我们这里直接将Bitwarden配置成HTTPS访问,感觉更简单一些。

frp内网穿透

Bitwarden服务搭建好了,而且还可以通过HTTPS访问,但是想要真正把这个服务用起来,还要实现外网访问。有公网IP的话,实现这个目的要简单一些,否则就要考虑内网穿透了。而实现无公网IP内网穿透的前提,还需要有一个云服务器,算起来也是一笔花销。不过我想玩NAS的人,应该有不少人都会有一台云服务器吧。内网穿透我这里选择frp,frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务


frp实现内网穿透主要涉及服务器端和客户端两个方面的配置。首先是服务器端,到这个地址:github.com/fatedier/frp/releases下载云服务器对应的最新frp安装包。大部分情况下,需要下载的是frp_0.34.1_linux_amd64.tar.gz这个安装包。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

在云服务器终端运行下面的命令下载并解压frp:

wget https://github.com/fatedier/frp/releases/download/v0.34.1/frp_0.34.1_linux_amd64.tar.gz
tar -zxvf frp_0.34.1_linux_amd64.tar.gz

然后可以看到压缩包里面有客户端frpc、服务端frps二进制文件,以及一些配置文件。这里我们只需要用到服务端的程序。注意,网上有不少教程还在使用一键搭建frp的脚本,不过这个脚本作者已经不维护了,下载的服务端程序是很老的版本,后面搭配新的客户端程序可能会出问题。所以还是老老实实从官网下载吧。修改frp服务端的配置文件frps.ini,内容如下:

[common]
bind_port = 7000 #与客户端绑定的进行通信的端口
vhost_https_port = 8080 #访问客户端web服务自定义的端口号

然后直接后台启动frps进行测试,测试成功后就可以加入开机启动了。

nohup ./frps -c ./frps.ini &

这里为了方便演示,配置项比较简单,没有加入身份验证。需要身份验证功能的话,可以参照官方文档进行设置:gofrp.org/docs/features/common/authentication。服务端程序完成配置并已经启动,下面要回到客户端了。frp客户端需要在NAS里面进行配置,最简单的方式自然是使用Docker了。在Container Station,搜索Docker镜像frpc,我们需要的镜像是snowdreamtech/frpc。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

Docker的配置也很简单,首先将网络模式设置成Host。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

然后在NAS上新建一个frpc.ini配置文件,并将/etc/frp/frpc.ini映射到这个文件。我这里将配置文件放到了/share/Container/container-station-data/application/frpc/frpc.ini这个位置。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

frpc.ini配置文件的具体内容如下:

[common]
server_addr = XXX.XXX.XXX.XXX
server_port = 7000

[bitwarden]
type = https
local_ip = 192.168.123.186
local_port = 9000
custom_domains = XXXX.XXX

common字段里面,server_addr是你云服务器的公网IP,也是frp服务端的IP。server_port和frp服务端设置的bind_port保持一致。

bitwarden字段里面,type 设置成https,local_ip其实就是你的NAS的内网IP,也是bitwarden的内网IP,local_port就是在搭建bitwarden时指定的端口号,custom_domains是你的域名地址。

配置完成后,就可以开启frp客户端进程了,看到下面的log就说明客户端成功和服务端连上了。

[service.go:288] [dc99a67b7d6f4b2a] login to server success, get run id [dc99a67b7d6f4b2a], server udp port [0]
[proxy_manager.go:144] [dc99a67b7d6f4b2a] proxy added: [bitwarden]
[control.go:180] [dc99a67b7d6f4b2a] [bitwarden] start proxy success

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

下面,我们还差最后一步,就是在阿里云控制台,添加一个记录,将域名解析到云服务器的公网IP。完成这一步后,我们就可以在外网通过域名+vhost_https_port端口的方式访问内网的bitwarden服务了。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

bitwarden体验

下面就简单体验一下我们自建的bitwarden服务是否能正常工作吧。首先访问自建bitwarden网站,使用邮箱创建一个新的账号。然后登陆bitwarden的管理页面,是不是和官方bitwarden一模一样。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

我这里使用Microsoft Edg测试自建的bitwarden服务。Microsoft Edg要安装Bitwarden
插件。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

插件要登录bitwarden服务器,点击右上角的设置按钮,将服务器地址设置为自建的bitwarden服务器地址。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

然后使用邮箱和密码登陆,能正常登陆的话,就说明我们自建bitwarden服务基本成功了。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

在插件里面添加一个项目,这里就以什么值得买的登陆为例。设置完毕后,在什么值得买登录页面,就可以使用插件进行账户密码自动填充了。我这里只是简单演示。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

Bitwarden提供了多平台客户端的支持,包括桌面应用、浏览器扩展、手机客户端等等,几乎覆盖所有使用场景。作为一个开源项目,对于私有化部署的只需要添加密码库地址就可以正常使用,还是挺方便的。

TS-453Dmini

最后再介绍一下我用来搭建Bitwarden服务的NAS硬件平台——TS-453Dmini。这是一款4盘位NAS,采用了J4125四核心处理器,基础频率为2.00GHz,最高睿频J为2.7GHz,性能上相比J3455有着不小的提升。TS-453Dmini支持DDR4内存,又折腾需求的建议直接加到8GB以上,玩起来会比较省心。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

接口方面,TS-453Dmini相比TS-453Bmini也有着不小的升级。最明显的也是最实用的升级,应该就是将TS-453Bmini的两个Gigabit 以太网络端口升级成了两个2.5G以太网络端口。对于那些在家里布局了万兆内网的用户来说,无疑会给内网传输速度带来更大的提升。此外,TS-HDMI接口也从1.4升级到了2.0,使得这台NAS具备了4096 x 2160 @ 60Hz的视频输出能力。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

TS-453Bmini的由于风道结构设计的不是很合理,经常被大家吐槽为闷罐。这一代的TS-453Dmini重新设计了风道,变为由上往下,经过CPU位置,散热效率比之上代TS-453Bmini有大幅度提升。实测下来,相同的散热环境下,TS-453Dmini的系统温度要比TS-453Bmini低4℃。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

硬盘方面,我使用的是西部数据的NAS红盘。西数红盘采用独家NASWare 3.0技术,该技术可提高 NAS 存储性能,减少 NAS 系统中的常见硬盘问题。西数红盘的功耗经过优化,不仅可大幅节省电耗,而且还可降低小型 NAS 环境中的硬盘运行温度,因此硬盘总体可靠性和性能更高,NAS 拥有成本更低。

FRP内网穿透 SSL证书 手把手教你在威联通NAS上搭建Bitwarden密码管理服务

新品QNAP威联通TS-453Dmini-8G四盘位新一代直立式2.5GbENAS网络存储器4299元天猫精选去购买西部数据(WesternDigital)红盘6TBSATA6Gb/s256M网络储存(NAS)硬盘(WD60EFAX)1259元京东去购买

后记

内网穿透这个东西我之前折腾的比较少,本来以为会比较麻烦。但是实际操作下来感觉还是挺简单的。整个Bitwarden服务的搭建还算顺利,几乎没有遇到什么卡壳的问题。有了自建的Bitwarden服务,密码管理就更加省心了。不过表面上说是免费的服务,但是除了NAS这种硬件投入,域名和云服务器这类软件投入都是额外的付出。不过无论是域名还是云服务器其实都还可以做更多事情。当然,NAS也可以用来做更多事情。TS-453Dmini的性能不错,有空可以再跑几个有用的服务玩玩。

展开 收起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

1999元起

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

2699元起

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

1199元起

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

1899元起

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

2000元起

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

1599元起

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

1699元起

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

1899元起

QNAP 威联通 TS-464C 4盘位NAS 黑色(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS 黑色(赛扬N5095、8GB)

3499元起

QNAP 威联通 TS-464C 4盘位8G内存四核心处理器网络存储服务器内置双M.2插槽NAS(含企

QNAP 威联通 TS-464C 4盘位8G内存四核心处理器网络存储服务器内置双M.2插槽NAS(含企

2099元起

QNAP 威联通 TS-264C 宇宙魔方 8G内存2盘位四核心处理器网络存储服务器内置双 M.2 插槽NAS私有云

QNAP 威联通 TS-264C 宇宙魔方 8G内存2盘位四核心处理器网络存储服务器内置双 M.2 插槽NAS私有云

1899元起

QNAP 威联通 TS-212P3 双盘位NAS(Realtek RTD1295、1GB)

QNAP 威联通 TS-212P3 双盘位NAS(Realtek RTD1295、1GB)

799元起

QNAP 威联通 TS-453Bmini 4盘位NAS(J3455、4GB)

QNAP 威联通 TS-453Bmini 4盘位NAS(J3455、4GB)

1899元起

QNAP 威联通 TS-873A 8盘NAS(V1500B、8GB)

QNAP 威联通 TS-873A 8盘NAS(V1500B、8GB)

7480元起
18评论

  • 精彩
  • 最新
  • 留个脚印:
    尝试多次提示environment variable ROCKET_TLS=XXXXXXXXXX could not be parsed。
    找了Docker说明提示需要pem格式的ssl文件,转换了一下再创建Docker就成功运行。

    校验提示文案

    提交
  • 有bmini,有域名,有公网ip,认真看完全篇,知难而退。 [锁眉]

    校验提示文案

    提交
    说明你没仔细看啊,公网IP是从云服务器来的,然后用云服务器做跳板做的内网穿透。原理跟群晖或者LEDE、Openwrt一样的

    校验提示文案

    提交
    我有公网IP,不用像作者一样折磨折腾,是我太菜,而且需求也不是很足,所以才退的o(╯□╰>o。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 最近威联通的教程越来越多了,真好

    校验提示文案

    提交
  • 学习收藏一下

    校验提示文案

    提交
  • 大神,添加环境出问题,显示
    environment variable ROCKET_TLS=XXXXXXXXXX could not be parsed 我也放了文件,不知道哪里出问题了

    校验提示文案

    提交
    我也是~cel文件也转换了,但是不行

    校验提示文案

    提交
    收起所有回复
  • ssl证书收费和免费有啥区别呢求教

    校验提示文案

    提交
  • 和10楼一样留个脚印:尝试多次提示environment variable ROCKET_TLS=XXXXXXXXXX could not be parsed。
    找了Docker说明提示需要的配置,建议直接拷贝粘贴,并修改成自己的配置:ROCKET_TLS={certs="/path/to/certs.pem",key="/path/to/key.pem"}

    校验提示文案

    提交
  • 启动后直接提示[rocket::config::error][ERROR] I/O error while setting tls.certs:

    校验提示文案

    提交
    一样,启动不起来

    校验提示文案

    提交
    收起所有回复
  • 大佬求教!!
    网页没有问题,但是手机端登录提示:Trust anchor for certification path not found
    要怎么解决啊!

    校验提示文案

    提交
  • 我也留个脚印。
    1.先在NAS上创建两个目录,一个是data目录,一个是SSL目录,分别是存放数据文件和SSL证书文件。我是在Container目录下建vw-data作为data目录,在vw-data目录下建cert目录作为SSL目录
    2.把SSL证书的crt和key文件拷贝到/Container/vw-data/cert目录下。不用转换成pem格式
    3.在 共享文件夹 里,建两个:
    新增:挂载本机共享文件夹:/Container/vw-data,挂载路径:/data
    新增:挂载本机共享文件夹:/Container/vw-data/cert,挂载路径:/ssl
    4.在 环境 里,新增:名称:ROCKET_TLS,值:{certs="/ssl/域名.crt",key="/ssl/域名.key"}。其中“域名.crt"和”域名.key"就是前边上传的两个文件名。

    校验提示文案

    提交
    Logger failed to initialize: attempted to set a logger after the logging system was already initialized
    [2023-02-09 04:34:22.808][rocket::config::error][ERROR] environment variable ROCKET_TLS=certs="/data/cert/xxx.crt",key="/data/cert/xxx.key" could not be parsed


    Logger failed to initialize: attempted to set a logger after the logging system was already initialized
    [2023-02-09 04:34:22.808][rocket::config::error][ERROR] environment variable ROCKET_TLS=certs="/data/cert/8120219_去看看",key="/data/cert/8120219_去看看" could not be parsed

    记录器初始化失败:在日志系统已初始化后尝试设置记录器
    [2023-02-09 04:34:22.808][rocket::config::error][error]环境变量rocket_TLS=certs=“/data/cert/xxx.crt”,key=“/data/cert/xxx.key”无法解析

    这种情况也不知道哪里操作错了

    校验提示文案

    提交
    请教一下,下面这个错是哪里配置有问题呢?

    [INFO] No .env file found.

    [2023-02-15 15:34:05.050][_][WARN] Detected TLS-enabled liftoff without enabling HSTS.
    [2023-02-15 15:34:05.050][_][WARN] Shield has enabled a default HSTS policy.
    [2023-02-15 15:34:05.050][start][INFO] Rocket has launched from 去看看:80
    [2023-02-15 15:34:05.434][rocket_http::tls::listener][WARN] tls handshake with 10.0.3.1:56976 failed: received corrupt message
    [2023-02-15 15:34:05.696][rocket_http::tls::listener][WARN] tls handshake with 10.0.3.1:56988 failed: received corrupt message

    校验提示文案

    提交
    还有1条回复
    收起所有回复
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
目录
320
扫一下,分享更方便,购买更轻松