×用微信扫描并分享

为「远程访问」群晖 DS218+ 添加 HTTPS 支持

19
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes)
Loading...

群晖折腾系列,第 3 篇:为远程访问添加 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 证书

感谢 @Waydeen 提醒,群晖整合了自动创建 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 条评论, 我要留言

  1. 楚轩大人说道:

    哎哟,终于弄到沙发了

  2. Waydeen说道:

    synology.me同样可以申请Let’s Encrypt免费证书,在DSM控制面板里添加证书,选Let’s Encrypt就行了,自动验证的,而且自动续期

  3. 小猫偷菊说道:

    LE用在NAS还是麻烦,3个月实在太短,我现在是TX的免费证书,解析在CF

  4. watermoon说道:

    家里的宽带被电信封锁了80、8080、443等端口,证书的自动验证是通不过了,请问小青蛙有什么办法呢?

  5. iwkoo说道:

    今天看微博,上面说群晖的硬盘老出状况啊

  6. Sharuru说道:

    我的群晖 DDNS 解析不出来,有 IP 解析出来但是连不上。

    • 青小蛙说道:

      端口映射了么

      你要确定是解析不出来,还是解析出来连不上哦,这是两个问题

      • Sharuru说道:

        后来查了下是路由器固件版本太老了,端口映射有 BUG,升级到新版本后解决了。
        现在用群晖 Docker 跑个 Cloudflare 的 DDNS 服务,挂上证书,惬意的很~ 🙂

  7. Ling说道:

    用的FreeSSL,没有出现账号密钥这个东西啊,难道是ZeroSSL专有的么?

  8. jason说道:

    https://www.appinn.com/ds218plus-https/
    话说访问这个链接都说“并非完全安全”。哈哈,这个你能忍?

  9. Nicky说道:

    我的路由器是华硕AC68,自带DDNS,我准备把自己的域名CNAME上DDNS的域名上,然后再试试。端口的话直接路由转发

  10. 不良菌说道:

    添加了外网访问的https,那我单纯在家里内网时如何访问?如果https过期了,内网又上不去,那不就杯具了?

有不同想法?说说看(首次评论会被人工审核,请耐心等待)