扫描二维码关注官方公众号
123下一页
返回列表 发布新帖

[玩法/技巧] 安装Let's Encrypt泛域名证书实现群晖NAS的免端口安全访问

 
21641 52
发表于 2018-3-18 02:48:04 | 查看全部 阅读模式

来吧兄弟,一起玩一起讨论!

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 waylon 于 2018-3-18 02:56 编辑

通过DSM提供的反向代理服务器(Nginx),可以在公网上直接通过https协议不加端口的直接访问NAS服务器的各项服务,一来避开了家中80端口被屏蔽的囧状,二来采用SSL证书强化了NAS系统访问的安全性。

虽然通过IP地址、QuickConnect或者花生壳等DDNS可以实现以上目的,但是毕竟显得不太专业,拥有自己的域名,通过域名来访问NAS是最自然的方式。现在注册一个域名并不是什么难事,费用也不是不可承受,通过CloudXNS或者DNSPOD等支持API的域名服务商,可以实现自己的域名与NAS服务器IP的动态绑定(DDNS),这部分内容并不是本文的主要内容,小白玩家可以自行搜索相关的文章来实现。

拥有了自己的域名(假设为mydomain.site),实现了DDNS,下一步自然是通过反向代理服务器为各项服务配置二级域名的解析,这个过程在DSM的控制面板中的“Synology应用程序门户”中完成,首先是通过“应用程序”中的设置为各项服务启用HTTPS的端口,然后在“反向代理服务器”中配置解析的规则,例如Note Station的端口为9351,则规则中这样配置:
  • 来源协议为:HTTPS
  • 来源主机名为:note.mydomain.site
  • 来源端口为:443

  • 目的地协议为:HTTPS
  • 目的地主机名为:localhost
  • 目的地端口为:9351


通过这种规则,可以建立一系列的二级域名,例如:video.mydomain.site,audio.mydomain.site,drive.mydomain.site,calendar.mydomain.site等等,甚至可以通过router.mydomain.site直接指向自己的路由器的配置页面。

实现了域名解析,下一步是安装SSL证书,否则在浏览器中访问这些域名时会非常尴尬的出现不安全的提示,如果你不缺钱,可以花钱去注册SSL证书,但是互联网上既然存在免费的SSL证书,作为爱折腾的NAS玩家当然要选择后者,而Let's Encrypt证书就是最适合的对象。

以往为了在这么多的NAS二级域名上使用SSL证书,必须每个二级域名进行一次申请,每90天重复一次,虽然有自动化脚本,执行时等待的时间还是很长的,就在本周二的3月13日,Let's Encrypt宣布泛域名证书服务上线,终于可以不再每个域名单独申请,只要申请mydomain.site及*.mydomain.site的证书即可,操作更为简便,使用也可以更为灵活,追加或变更二级域名不再需要重新申请证书了。

下面就将新的泛域名证书申请的方法进行介绍,首先是SSH登录到NAS服务器,然后获取acme.sh的代码并安装,之后就是执行acme.sh来申请证书,最后下载安装证书,由于acme.sh会通过cronjob命令来生成每日检查的任务,而群晖NAS中默认并无cronjob命令,因此必须在安装acme.sh时增加一个“--force”参数来禁止使用cronjob命令,所以虽然acme.sh提供了curl等方法直接安装,但是我还是建议使用Git克隆源码(可在Git Server套件安装后使用git命令)后安装,另外我使用了CloudXNS管理域名,acme.sh具体支持的域名服务商请参见后面的链接。

  • 获取代码
    git clone https://github.com/Neilpang/acme.sh.git
  • 安装脚本
    cd acme.sh
    ./acme.sh --install --force
  • 进入目录:
    cd ~/.acme.sh/
  • 设置变量:
    export CX_Key="替换为CloudXNS的key"
    export CX_Secret="替换为CloudXNS的secrcet"
  • 申请证书:
    ./acme.sh --issue --dns dns_cx -d mydomain.site -d *.mydomain.site
  • 备注,90天以后更新证书时的命令为:
    ./acme.sh --renew -d mydomain.site -d *.mydomain.site



在等待120秒之后,证书就已经申请下来了,下面接着在NAS中部署证书,上一步中的证书申请时都下载到了~/.acme.sh/mydomain.site/,在DSM的File Station中找到该目录,把私钥、证书、中间证书下载到PC本地,这三个文件分别是私钥:mydomain.site.key、证书:mydomain.site.cer、中间证书:ca.cer,然后在DSM的控制面板中找到安全性,在“证书”中新建证书或替换已有证书,之后选择导入正整数,然后在私钥、证书、中间证书的选项中分别选中刚刚下载的文件,确定之后DSM会重启应用程序门户来应用新的证书。

SSL证书安装好了后,可以在浏览器中用https协议免端口访问一下任意二级域名是否已经变成绿色的小锁了,另外别忘了在访问前,路由器上的443端口必须打开,否则https协议无法连接到服务器上。最后,可以自己做个HTML页面放到www.mydomain.site,把所有的外部服务放到自己的导航主页上,以后使用服务时只要访问主页并点击相应的图标即可。

参考链接:
LE证书支持泛域名的说明
两种安装LE证书的介绍
acme.sh的中文说明
acme.sh的安装说明
acme.sh支持域名服务商的DNS API
我的导航主页



评论52

rorayLv.5 发表于 2018-3-18 09:20:24 | 查看全部
这个是技术文啊!显然我看不懂!!!
回复 点赞

使用道具 举报

waylonVIPLv.5 发表于 2018-3-18 10:23:47 | 查看全部
本帖最后由 waylon 于 2018-3-18 10:26 编辑
roray 发表于 2018-3-18 09:20
这个是技术文啊!显然我看不懂!!!

也不复杂,跟着配置即可,主要目的就是在浏览器上直接输入 https://note.mydomain.site 时直接访问自己的Note Station,需要处理的几个问题是:
1.宽带IP变化时,域名访问不出错
2.HTTPS访问时,不要出现证书无效的提示
3.证书的生成和更新可以方便的操作,目前由于DSM本身的欠考虑,无法使用DSM本身的LE证书生成和更新功能,因此得用手动方式,希望以后DSM能改进
回复 点赞

使用道具 举报

hnmcc1860Lv.10 发表于 2018-3-18 10:32:25 | 查看全部
我有个问题  局域网内有一台网页服务器使用了443,群晖上怎么才能共享443端口
回复 点赞

使用道具 举报

szaphaLv.2 发表于 2018-3-18 11:00:28 来自手机 | 查看全部
好像挺管用的,谢谢分享
回复 点赞

使用道具 举报

momoVIP互助团队 发表于 2018-3-18 11:03:59 | 查看全部
不错已经推送到公众号!如果有配图更好!
回复 点赞

使用道具 举报

tomshen 发表于 2018-3-18 11:41:28 | 查看全部
能不能写一个用DM界面安装证书的教程?
回复 点赞

使用道具 举报

觅凤的梧桐Lv.10 发表于 2018-3-18 14:05:49 | 查看全部
443端口都封了,还有卵用不?
+1 
发表于 2018-3-22 11:34
回复 点赞

使用道具 举报

超导体Lv.10互助团队 发表于 2018-3-18 17:56:37 | 查看全部
waylon 发表于 2018-3-18 10:23
也不复杂,跟着配置即可,主要目的就是在浏览器上直接输入 https://note.mydomain.site 时直接访问自己的N ...

利用DSM本身的LE证书生成和更新功能,需要DSM所在的网络开启80端口;DSM的这个功能是可用的。
无奈的是目前家庭用的宽带基本都是封了80端口的。
DS718+(6G Ram) Runing...
MS04 (J3455 8Gram) Runing ...
MicroServer Gen8 (1220Lv2 16Gram)
回复 点赞

使用道具 举报

waylonVIPLv.5 发表于 2018-3-18 22:58:15 | 查看全部
hnmcc1860 发表于 2018-3-18 10:32
我有个问题  局域网内有一台网页服务器使用了443,群晖上怎么才能共享443端口 ...

反向代理的话,来源端口全部都是443,只是不同的服务目的地端口不一样,你这个只要保持原来的网页的目的地端口为443即可,不会冲突的
回复 点赞

使用道具 举报

waylonVIPLv.5 发表于 2018-3-18 22:59:19 | 查看全部
tomshen 发表于 2018-3-18 11:41
能不能写一个用DM界面安装证书的教程?

DM界面安装证书只要把生成的证书选择上去即可,没有啥需要特别写的吧
回复 点赞

使用道具 举报

waylonVIPLv.5 发表于 2018-3-18 23:00:52 | 查看全部
觅凤的梧桐 发表于 2018-3-18 14:05
443端口都封了,还有卵用不?

没有吧,至少我这的443端口还是可以正常访问的,当然,天朝的事都说不清,说不定什么时候就全面封锁了443了
回复 点赞

使用道具 举报

waylonVIPLv.5 发表于 2018-3-18 23:14:51 | 查看全部
超导体 发表于 2018-3-18 17:56
利用DSM本身的LE证书生成和更新功能,需要DSM所在的网络开启80端口;DSM的这个功能是可用的。
无奈的是目 ...

就是这个意思啊,因为从Synology的角度,用80端口是很正常的,但是国内家庭宽带的80都被阉割了,所以DSM本身的LE功能无法使用,但是毕竟大陆的销量摆在这里,Synology应该要适应一下啊,所以我说DSM欠考虑
Synology的论坛上早就有请求支持DNS认证方式的帖子,但是官方没有任何响应。
回复 点赞

使用道具 举报

waylonVIPLv.5 发表于 2018-3-18 23:23:09 | 查看全部
momo 发表于 2018-3-18 11:03
不错已经推送到公众号!如果有配图更好!

大部分都是终端中的操作,好像配图的必要性不大,所以没有准备图片
回复 点赞

使用道具 举报

cheong0hkLv.10 发表于 2018-3-19 07:28:15 | 查看全部
谢谢分享
回复 点赞

使用道具 举报

xwf112Lv.5 发表于 2018-3-19 11:16:40 | 查看全部
说的好像443没有被封禁一样的。
回复 点赞

使用道具 举报

waylonVIPLv.5 发表于 2018-3-19 12:41:24 | 查看全部
xwf112 发表于 2018-3-19 11:16
说的好像443没有被封禁一样的。

哈哈,我这里的确没有封禁,你是哪个地方的?
回复 点赞

使用道具 举报

waylonVIPLv.5 发表于 2018-3-19 12:54:38 | 查看全部
xwf112 发表于 2018-3-19 11:16
说的好像443没有被封禁一样的。

无论是否使用443端口,DSM通过反向代理服务器自己解析二级域名的方法都是通用的,这种方法不用在域名注册商那边配置二级域名的解析,在DSM中管理这些解析比较方便。

如果443真的被封了,那就只有靠外部VPS再加一层反代了,VPS的反向代理服务器把443端口的请求转到DSM指定的端口,例如20443,DSM中的反向代理服务器中的来源端口改为20443即可,甚至在路由器的防火墙上将外部20443端口转发到DSM的443端口,DSM都不用做任何改动,只不过这样在外部加一个VPS反代,访问性能上会有些损失,但这也是没有办法的事情了。
回复 点赞

使用道具 举报

xwf112Lv.5 发表于 2018-3-20 22:40:04 | 查看全部
waylon 发表于 2018-3-19 12:54
无论是否使用443端口,DSM通过反向代理服务器自己解析二级域名的方法都是通用的,这种方法不用在域名注册 ...

只是这样就没有太大意义了。
而且收到VPS链接速度的限制。得不偿失啦
回复 点赞

使用道具 举报

hnmcc1860Lv.10 发表于 2018-3-23 10:21:16 | 查看全部
启用自定义域就可以呀 干嘛要用反向代理
回复 点赞

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

淘宝小店

邀请码

VIP会员

微信客服

公众号

微信群

投诉/建议联系

support@gebi1.cn

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2024 隔壁网 版权所有 All Rights Reserved. 粤ICP备14056481号-1
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表