Axiu Blog
![nas-add-ssl](https://imgs.axiu.me/2024s4/nas-add-ssl.png) 本来买群晖图个省心,无奈之下还是得折腾。解决快速访问主要还是依赖ddns,思路有两个:固定IP或者自定义域名绑定。固定IP对于家庭宽带显然是不可能的。浮动IP的话,就要时不时更新域名指向的ip地址,参考之前的[文章](https://ww
之前群晖的QuickConnect用的挺好:不用配置端口转发,不用折腾域名和证书,记住一个自定义别名/自选域名即可。但是最近几年情况急转直下,先是内置的几个免费用域名时常挂,QC除了提示必须绑定大陆手机号之外,也时常出现解析失败的问题。 ![nas-add-ssl](https://imgs.axiu.me/2024s4/nas-add-ssl.png) 本来买群晖图个省心,无奈之下还是得折腾
之前群晖的QuickConnect用的挺好:不用配置端口转发,不用折腾域名和证书,记住一个自定义别名/自选域名即可。但是最近几年情况急转直下,先是内置的几个免费用域名时常挂,QC除了提示必须绑定大陆手机号之外,也时常出现解析失败的问题。 ![nas-add-ssl](https://imgs.axiu.me/2024s4/nas-add-ssl.png) 本来买群晖图个省心,无奈之下还是得折腾
群晖ssl证书配置和更新
Max

之前群晖的QuickConnect用的挺好:不用配置端口转发,不用折腾域名和证书,记住一个自定义别名/自选域名即可。但是最近几年情况急转直下,先是内置的几个免费用域名时常挂,QC除了提示必须绑定大陆手机号之外,也时常出现解析失败的问题。

nas-add-ssl

本来买群晖图个省心,无奈之下还是得折腾。解决快速访问主要还是依赖ddns,思路有两个:固定IP或者自定义域名绑定。固定IP对于家庭宽带显然是不可能的。浮动IP的话,就要时不时更新域名指向的ip地址,参考之前的文章还是使用ddns-go。

有了域名,并配置好了ddns,对于群晖来说,就可以通过域名愉快访问了,响应速度是可以的。

但是作为折腾星人,既然涉及到域名,就会看到ssl证书(不是http不能用,而是https更有安全感)。

按着以往的网络经验,这个ssl证书一般自己签,或者干脆使用域名服务商提供的证书(之前一直是这么用的)。然后在群晖的“控制面板-安全性”的“证书”tab里新增证书即可。

证书的作用,是为了说明你提供的这个网站服务,是经过验证可信的,不是仿冒的网站。

证书3个月过期一次,所以每过一段时间就会看到“不安全”的提示,然后各种应用打不开,必须把上面的操作重新来一遍,很烦。

acme.sh,Let's Encrypt 域名证书申请续签

既然是自己的机器,跑个脚本或者加个docker服务来做这个事也是可以的。说干就干。

签证书依然是用acme.sh。他在目标域名和本地服务之间做校验,并生成证书。域名验证就是做一个可达的http落地请求,或者给域名加一个DNS校验,响应acme.sh指定的内容。

acme.sh 是域名证书申请续签程序。支持 http 和 DNS 两种域名验证方式。可同时申请合并多张单域名、泛域名证书,并自动续签证书和部署到项目。也支持Docker部署。

http校验很方便,在服务器操作即可。但是作为网络服务,起码需要一个nginx服务,并且需要定制返回内容。对于单独控制的服务来说不太方便。

DNS校验看起来很复杂,每次都去改DNS记录(添加一条txt),但是由于有了dnsapi,这个过程得以通过代码处理。目前100多个域名供应商都提供了dnsapi,可以通过列表查询。一般在docker里添加从服务商处生产的key和secret,作为启动参数即可。

完事具备。群晖的流程是:

docker独立启动一个acme.sh实例,用于在指定目录下生成证书;

另外启动一个定时任务,定时调用实例,并把生成的证书,复制到群晖的证书目录里。

定时任务启动脚本,设定每月重复。

bash /volume1/autoCert.sh 

autoCert.sh文件内容如下:

#!/bin/bash
 
docker exec neilpang-acme-sh-1 acme.sh --force --log --issue --server letsencrypt --dns dns_dp --dnssleep 120 -d domain.name -d *.domain.name -k 4096

#sudo su root

docker exec neilpang-acme-sh-1 acme.sh --deploy -d domain.name -d *.domain.name --deploy-hook synology_dsm

详细流程参考 这里

jellyfin配置https

jellyfin在群晖下面体验挺好的。无论是播放还是刮削视频信息都很可靠。但是配置https很蛋疼,因为仅仅支持一种证书格式,就是"包含了证书和私钥的 PKCS #12 文件",所以不能直接使用上面生成的证书,需要单独做转换并重启docker。

这次整理的时候,顺便迂回找到一个办法:反向代理。具体配置方法可以看这里,或者自己启动一个nginx效果也一样。

Comments
Cloudflare可以自动签发免费证书好像
对,但是除非服务器也是cloudflare,证书还是需要手动放到服务器上