前言
有很多小伙伴用群晖的时候都是通过HTTP连接到群晖Docker中的第三方服务,经常反馈连接不到群晖服务,其实HTTP的信息是明文传输的,是不安全的,所以有很多客户端强制使用HTTPS。
而HTTPS 是由 SSL+HTTP 构建,具有加密传输和身份认证的特性,所以比 HTTP 更安全,HTTPS 需要向证书颁发机构(CA)申请证书,这也是比HTTP相对麻烦的地方。
接下来就演示如何通过群晖自带域名来给Contain Manager中的服务加上SSL
域名
打开控制面板的外部访问,可以看到DDNS选项卡下有群晖默认创建的一条DDNS记录,主机名称为【自定义名称.群晖一级域名】,外部地址就是家里的公网IP
有很多不懂的小伙伴会问,DDNS是什么?先说DNS,在互联网上,每个设备都有一个唯一的 IP 地址,这是用于在网络上识别设备的数字标识。人们更容易记住具有意义的域名而不是一系列数字。DNS的作用就是将这些易记的域名映射到相应的 IP 地址。
而DDNS就多了一个D(Dynamic),动态的意思,因为家里的公网IP都是变化的,所以需要DDNS帮助我们自动检测并更新设备的 IP 地址到 DDNS 服务上,这样才能通过域名找到家里的群晖。
至于为啥我的域名这么简单,而不是synology.me,需要点开编辑,选择自己喜欢的域名就行了
群晖的域名可以自动续签SSL证书,加上可以自己设置域名,也是让群晖用户省了一笔
反向代理
先说说什么是反向代理,简单来就是代理服务器接受客户端的请求,然后将这些请求转发给内部服务器,最终将内部服务器的响应返回给客户端
举个例子,在群晖Docker系列中,用Memos搭建了一个备忘录,当我们在手机上记录内容并保存时,手机就会给群晖发送请求,群晖使用了反向代理,那么就是群晖的代理服务器接受到了请求,然后就会转发给Docker的Memos服务器保存数据,Memos服务器保存成功后又通过代理服务器返回成功的数据给手机客户端
为什么要用方向代理?这个好处比较多了,对于我们目前来说,可以方便配置SSL,后面访问Docker任何都可以不用带5230、25600各种各样的端口号了,只需要使用一个就行(至于为啥不能全部去掉端口号,直接用域名访问?那是因为家里的宽带都被运营商封了80、443端口)
接下来演示进行反向代理的配置,打开控制面板->高级->反向代理服务器
新增一条代理规则,这里以代理Memos的端口为例。 来源协议需要选择HTTPS,主机名为DDNS的主机名,端口5555为用使用HTTPS访问的端口号,目的地填写本机地址(群晖本机搭建的Memos)和端口5230(Memos服务端口)
再去路由器把5555端口放开,这时候访问Memos就可以用【https:域名:5555】
后记
这样每个服务都要加一个代理服务器配置起来也是比较麻烦的,并且不能实现前面说的:使用同一个域名+端口+/path访问不同的内网服务。如果想要实现必须手动修改群晖反向代理服务器(nginx)的配置,这里是非常不建议手动修改nginx配置的,一个不小心你的群晖可能就无法访问了,后面会介绍通过界面配置nginx来实现所有内网服务的SSL