网络应用

使用群晖DSM快速为本地网页开启https

前言

对于NAS玩家来说,平时本地可能也跑了各种各样的网页应用,比如我个人常用的就有stable diffusion WebUI、sunshine串流管理面板等。为了便于分享或者更安全的从广域网访问,我们可以考虑为这些页面添加SSL证书并开启https。

通常情况下,不少人可能会选择用Apache或者Nginx等工具进行反向代理,实现对网站证书的统一管理。当我正在研究如何优雅地在群晖上部署Nginx环境时,居然惊讶地发现,DSM本身已经提供了类似的能力,而且配置非常简单方便。在后续的章节中我会示范具体的操作流程。

本篇文章演示使用的是群晖DSM 7.2-64570 Update 3,设备是DS1621+。开始之前,我假设大家已经了解端口映射、域名解析、和SSL证书申请的流程,将不会做过多介绍。演示过程中隐藏了一些真实的域名和地址,请大家见谅。

反向代理

首先,我已经在本地10.1.1.10:3080启动了一个基于http的网页服务,局域网下可以直接访问
本地网页展示.png
我们的目标就是为这个网站开启https。接下来,我们登陆DSM,将群晖作为一个统一的网络服务入口,设置 群晖->10.1.1.10:3080的反向代理。打开控制面板-登陆门户,选择高级;再点击反向代理服务器,选择新增
反向代理1.png
反向代理2.png
反向代理3.png
大家可能注意到了,我的网页服务正好就开在群晖上,本地IP都是10.1.1.10;但理论上说同网段下任意可访问地址都能作为反代目的地。在做好域名解析后,我们就可以通过https+域名来打开演示网页了(从广域网访问还需结合实际做端口映射,不展开讲了)。
未配置证书.png
目前我们看到浏览器报错,是因为DSM默认给演示网站绑定了自签发的泛域名证书,这个自签证书肯定是不被浏览器信任的。所以接下来我们还需修改SSL证书相关配置。

证书配置

获取SSL证书的方式很多,我个人习惯是通过acme.sh脚本从Letsencrypt获取免费证书,通过dns challenge直接将证书文件下载到本地,具体流程不展开说了。为域名获取好证书后,我们在DSM中打开控制面板-安全性-证书,选择新增
配置证书1.png
配置证书2.png
接下来,因为我已经提前准备好了证书,所以直接选择导入
配置证书3.png
配置证书4.png
添加好后,在证书列表我们就能看到新增的证书了。最后一步,我们还需要把证书绑定到我们的本地网页服务上去。在列表上方点击设置,再在配置中找到反向代理使用的域名,将要使用的证书从群晖的自签名证书替换成刚刚上传的就可以了
配置证书5.png
配置证书6.png
此时我们刷新下浏览器,就发现之前的证书报错已经没有了。至此,为网页开启https的演示也就结束了。
已配置证书.png

总结

其实关于DSM的这个反向代理功能,我不太确定群晖官方为何把它放在系统的登陆门户里。一开始我还以为类似的能力会通过WebStation等套件提供。所以,我也不清楚它的设计初衷,以及官方是否推荐我这种将其作为Nginx平替的操作。如果大家有任何想法或疑问,欢迎与我交流。

回复

  1. vceyfmhbcy vceyfmhbcy
    Sogo 10

    看的我热血沸腾啊

  2. vfnuxnzqnv vfnuxnzqnv
    Sogo 10

    怎么收藏这篇文章?

  3. jyxswbpvhm jyxswbpvhm
    Sogo 10

    想想你的文章写的特别好https://www.237fa.com/

  4. hsiwqddjqs hsiwqddjqs
    Sogo 10

    想想你的文章写的特别好https://www.ea55.com/

  5. xvwdrrrycq xvwdrrrycq
    Sogo 10

    看的我热血沸腾啊www.jiwenlaw.com

This is just a placeholder img.