为「远程访问」群晖服务器 添加 HTTPS 支持

虽然,Chrome 说未来将不再为 HTTPS 添加绿色的安全两个字,但强迫症不能忍现在的不安全三个字啊。

嗯,先来看一下正经的 HTTPS 是什么样子的:

比起不安全,是不是有一种瞬间高大上感觉?

那么问题来了:

如何为「远程访问」的群晖 DS218+ 添加 HTTPS 支持呢?

情况有点复杂,本来 DSM 里面有专门的功能,可以通过免费的 Let’s Encrypt 证书来完成 HTTPS 的支持,但是由于国内的运营商普遍封锁了 80 端口,于是这个功能不可用。

所以我们需要使用别的方法。

这样还要分两种情况:

  • 如果你有一枚真.域名,能开启 HTTPS 支持

.com、.me、.net 随意什么域名,就可以实现 HTTPS 了。

  • 如果你没有域名,不能开启 HTTPS 支持

买一个,或者用群晖自带的 xxx.synology.me 配合 Let’s Encrypt 证书使用。但无法开启 HTTPS 支持,因为那个域名不是你的,无法通过验证

▍设置使用 xxx.synology.me 来访问你的群晖

先来说如何设置使用 synology.me 吧,毕竟这个是零成本最简单的方法了,可惜的是不支持 HTTPS 并且同样支持 HTTPS。

在 控制面板 中的 外部访问 中,有一个 DDNS 功能,在服务提供商里,有非常多的第三方动态域名服务,Synology 是群晖提供的 DDNS 服务,居然提供了非常多的个性域名可以选择,所以挑一个顺眼的吧。

注意只能添加一个 Synology 的服务,这里以 synology.me 为例。

然后在输入主机名称,就是 xxx.synology.me 里面的 xxx 了,然后勾选同意服务条款,确定就完成了,非常简单。

以后,你就可以在世界任何地点使用任何网络通过 xxx.synology.me:5000(由于 80 口被封,无法自动跳转,需要手动添加 :5000)访问你的群晖了。

不过还是要注意一下,你需要在路由器设置页面上开启 5000 端口的映射,这个部分需要注意的是 IP 地址填入群晖的局域网地址,源端口与目标端口都填入 5000 就好了。

(可以同时将 5001 也映射了,HTTPS 需要用到)

创建 synology.me 证书

群晖整合了自动创建 synology.me 证书,对于没有域名的同学来说,这个方案首选。

在 3 域名处,输入你的 xxx.synology.me,然后选择一个邮箱,备选留空,点击下一步就完成了,无需验证域名。

利用 synology.me 实现自有域名的 DDNS 功能

由于 xxx.synology.me 已经实现了自动更新公网 IP 功能,所以我们只需要将自己的域名设置一个 CNAME 记录指向 xxx.synology.me 就行了,无需设置第三方 DDNS 服务。

▍用真域名、真证书,使用 HTTPS 来远程访问你的群晖资源

假设你已经有了域名,并且会设置域名解析,然后开始下面的步骤。

免费获取 Let’s Encrypt  证书

一般情况下,使用 Let’s Encrypt 需要命令行来操作,青小蛙是比较反感面向普通用户使用命令行的,于是找来了网页工具 ZeroSSL,一站式解决生成密钥、请求文件、证书生成全套流程,你只需要进行一下域名验证即可。

备注:对于直接使用 ZeroSSL 生成私钥不放心的同学,可以自己生成私钥,这里不再讨论。

打开 ZeroSSL 后,填入邮箱、要使用的域名,勾选 DNS verification,勾选两个 Accept:

点击 NEXT 后会弹出一个问题:“Include www-prefixed version too?”,这是在问要不要生成 www 前缀的证书,我们不需要,点 No 就行了。

稍等片刻,ZeroSSL 会生成 CSR,记得下载或者复制保存好,再第一次 NEXT,会生成 账号密钥(非证书密钥),保存下来(未来续签证书会用到),然后第三次点击 NEXT。

正常情况下会要求你进行 DNS 域名验证,你需要添加一个 TXT 记录,这里默认你会,如果你不会…

点击 NEXT 后,如果看到这个:

恭喜证书完成。赶紧把下面的 crt.txt 和 key.txt 下载回来,这个用得到。

(如果提示 CAA 错误,尝试给你的域名添加 CAA 记录,Let’s Encrypt 的 CAA 为 letsencrypt.org)

在 ZeroSSL 的任务就完成了,我们返回 DSM。

设置证书

在 DSM 的控制面板 > 安全性 > 证书中,可以添加新证书:

中间证书在这里下载

最后,在 控制面板 > 网络 > DMS 设置中,打开以下两个功能:

终于完成了。

看着绿色的 HTTPS 是不是心里美滋滋?

最后提醒:由于 Let’s Encrypt 的证书有效期只有 3 个月,而 80 口被封导致无法自动续签,所以 3 个月到期前还需要前往 ZeroSSL 网站进行重复续签操作,还记得上面提到的保留的 CRS 和 账号密钥 么?直接填入 NEXT 就好了。

至此,就可以在远程网络下使用自己的 HTTPS 域名访问群晖啦。

(教程完)

浏览量: 19