TrueNAS Scale入坑指南No.5——mkcert自签名实现https访问内网IP

2023-09-14 10:15:21 8点赞 56收藏 6评论

一、前言

为什么不用DDNS?

在我的NAS使用经历中比较长的一段时间都是在使用群晖,群晖自带了DDNS可以非常方便的穿透内网,实现异地访问。近两年使用TrueNAS Scale的时候,我也在docker中部署了实现DDNS功能的应用,但在公网上暴露大量服务端口其实是有很大风险的,因此我也一直在寻找其他的方案。

选择了什么?

最终在一次升级家庭网络设备的时候我选择了利用wireguard来实现内网穿透,相较于直接端口映射来说,wireguard的安全性无疑更加高一些。wireguard说到底还是一个VPN,将家庭网络和你使用的外部设备连接成一个局域网,设备间的访问都是使用的内网IP地址。

有什么问题?

其实局域网的情况下对https并没有什么需求,但某些docker应用在使用时要求必须使用https访问,因此我不得不寻求方法解决这个问题,最终找到了mkcert这个开源的小工具。

二、准备工作

1、下载并安装finalshell

下载链接自行度娘。

2、下载mkcert

GitHub中搜索“ FiloSottile/mkcert”

在Releases中下载适合自己平台的版本,我这里下载的是mkcert-v1.4.4-linux-amd64。

mkcert下载mkcert下载

三、配置SSH服务

登录TrueNAS Scale,顺便看一下,地址栏中的小锁上有个叹号,说明还没有证书。

设置ssh登录设置ssh登录

现在要设置TrueNAS Sclae,使之能利用SSH工具登录。在页面左侧选择“系统设置”→“服务”

设置ssh登录设置ssh登录

把ssh后面的蓝色滑动按钮打开,如果你经常使用ssh的话可以勾选后面的方框,如果不需要,保持默认就行。最后点击最后一个像铅笔一样的图标,进入去修改设置。

设置ssh登录设置ssh登录

勾选“使用密码以root身份登录”,点击“保存”。

设置ssh登录设置ssh登录

因为之前的教程中我们一直没有为root用户设置密码,现在我们要到用户那里去设置下root用户的密码。

设置ssh登录设置ssh登录

点击root用户,下方会弹出编辑按钮,点击“编辑”按钮。

设置ssh登录设置ssh登录

取消“禁用密码”并设置新密码,将页面拉至最下方点击“保存”。

设置ssh登录设置ssh登录

四、FinalShell设置

回到电脑,打开下载并安装好的finalshell。先点1处按钮,在弹出的连接管理器中点2处的按钮,并选择“SSH链接(Linux)”

FinalShell设置FinalShell设置

在名称中填写自定义名称,主机中填写IP地址,用户名和密码对应的是TrueNAS Scale中的root用户和及其密码,配置完成后点击“确定”。

FinalShell设置FinalShell设置

在连接管理器或者FinalShell中双击刚才设置好的连接,登录到TrueNAS Scale后台。

FinalShell设置FinalShell设置

选择“接受并保存”

FinalShell设置FinalShell设置

现在就可以愉快的在TrueNAS Scale的后台玩耍了。

FinalShell设置FinalShell设置

五、生成证书

在左侧目录树中选择一个目录,可以是你的共享目录,把之前下载好的mkcert文件拖到这个目录里。这里我放到了/mnt/pool/software中。

在命令行中分别输入(#号后面为注释,不要复制)

cd /mnt/pool/software # 进入mkcert所在的目录

chmod 777 mkcert-v1.4.4-linux-amd64 # 更改mkcert文件的权限

./mkcert-v1.4.4-linux-amd64 -version # 执行一下,确保可以正常运行。

为服务器配置证书为服务器配置证书

继续输入下方代码,生成服务器证书。

./mkcert-v1.4.4-linux-amd64 192.168.0.10

这时在当前目录下会生成两个文件,一个是“192.168.0.10.pem”,这个是证书文件;一个是“192.168.0.10+2.pem”,这个是证书密钥。如果没有看到这两个文件,点一下红色箭头处的刷新按钮。

为服务器配置证书为服务器配置证书

选中这两个文件,点击右键,选择下载,FinalShell会自动把文件下载到桌面的fsdownload文件夹中。

为服务器配置证书为服务器配置证书

我们虽然为TrueNAS Scale生成了证书,要让其他电脑能接受这个证书我们还需要生成一个认证机构的证书文件,并把这个文件安装到访问TrueNAS Scale的设备中。在命令行中,输入下面的命令:

./mkcert-v1.4.4-linux-amd64 -install


执行完这个命令后机构证书就生成了,但这个文件并不会出现在当前目录下,我们需要输入下一个命令查找机构证书的路径:

./mkcert-v1.4.4-linux-amd64 -CAROOT # 注意大小写

之后命令行中会输出机构证书的保存位置,我的是存放在/root/.local/share/mkcert中,去到这个目录,将机构证书“rootCA.pem”,密钥文件“rootCA-key.pem”下载。

为服务器配置证书为服务器配置证书

六、使用证书

先为TrueNAS Scale配置并使用证书,登录TrueNAS Scale,在页面左侧选择“证书”→“证书”。

使用证书使用证书

点击“添加”

使用证书使用证书

证书名称中,按照规则自定义名称,类型修改为“导入证书”。

使用证书使用证书

证书选项不需要设置,直接点击下一步。

使用证书使用证书

“额外的约束”中需要填写证书和密钥,找到刚才给服务器生成的证书和密钥(以IP地址开头的那个),用记事本打开,把里面的内容复制到对应的位置。完成后点“下一步”。

使用证书使用证书

保存设置

使用证书使用证书

首页左侧选择“系统设置”→“常规”

使用证书使用证书

点击GUI右侧的“设置”按钮

使用证书使用证书

在“GUI SSL证书”中选择刚才自定义的证书

使用证书使用证书

拉到最下方,点击“保存”

使用证书使用证书

弹出的对话框中勾选“确认”,点击“继续”,完成服务器端的配置。

因为我们还没有配置访问设备的认证机构证书,接下来如果你在浏览器地址栏中输入https://192.168.0.10/,不同的浏览器会有不同的结果

edge和chrome:

使用证书使用证书

firefox:

使用证书使用证书

我们回到刚才下载证书的文件夹,找到认证机构证书:rootCA.pem,将其文件名修改为:rootCA.crt,然后双击,在弹出的对话框中选择“安装证书”

使用证书使用证书

选择“本地计算机”(其实家用电脑只有一个用户的话选择“当前用户”也没有问题),点击下一步。

使用证书使用证书

之后系统会弹出警告提示,不用理会,确认后继续。选择”将所有的证书都放入下列存储“,并点击旁边的浏览按钮。

使用证书使用证书

选中”受信任的根证书颁发机构“,并点击确定。

使用证书使用证书

退出后,点击下一步

使用证书使用证书

最后点击完成

使用证书使用证书

系统提示,导入成功,一路点确定退出,完成配置。

一般来讲这时候用https://192.168.0.10/就可以看到已经可以正常识别证书了。

使用证书使用证书

但是有个别类型的浏览器还需要再手动导入一下。设置位置一般位于浏览器的设置选项中的隐私与安全中。

使用证书使用证书

拉到“证书”所在位置,并打开查看证书。

使用证书使用证书

选择“证书颁发机构”标签,并点击下方的“导入”按钮。

使用证书使用证书

勾选信任,并点击确定。

使用证书使用证书

退出后再次点击确定

使用证书使用证书

好了,现在打开https://192.168.0.10/,应该就可以看到已经设置成功了

使用证书使用证书

七、下期预告

既然我们已经可以给局域网IP添加自签名证书了,那么下一篇就来部署一个需要用https访问才能使用的应用——Vaultwarden,基本算是NAS必装的一个密码管理和自动填充工具。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
6评论

  • 精彩
  • 最新
  • 自签名还是麻烦,买个域名+三级域名反向代理+acme证书自动续期是最优解,既减少端口暴露,又减轻运维成本,又没有后台挂VPN的额外开销

    校验提示文案

    提交
    无公网ip

    校验提示文案

    提交
    收起所有回复
  • 用nginx proxy manager感觉也很简单方便

    校验提示文案

    提交
    用过,也挺好用,还可以自动申请证书。

    校验提示文案

    提交
    收起所有回复
  • 麻烦且不优雅。个人因为是校园网,所以有本地https需求。用的是npm,然后定时从vps同步泛域名证书,这样访问设备不用再导入ca

    校验提示文案

    提交
    当然可以啦,个人使用习惯问题。我也用过很长一段时间的npm。现在更愿意用wireguard因此,需要目前这种方案

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

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