群晖使用ACME获取SSL证书

前言

前段时间得知阿里云的ssl证书从免费的一年变为三个月了(好像吧 反正客服是这么说的),然后觉得每次手动替换太复杂,所以决定使用acme申请免费的ssl

步骤

因为我的群晖上边好像原来就有acme 所以直接使用了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cd /usr/local/share/acme

./acme.sh --issue --server letsencrypt --home . -d aboyzy.top --dns dns_ali

cp ./aboyzy.top_ecc/aboyzy.top.cer /usr/syno/etc/certificate/_archive/AkWkze/fullchain.pem

if $?==0 echo "ok"

cp ./aboyzy.top_ecc/aboyzy.top.cer /usr/syno/etc/certificate/_archive/AkWkze/cert.pem

echo $?

cp ./aboyzy.top_ecc/aboyzy.top.key /usr/syno/etc/certificate/_archive/AkWkze/privkey.pem

echo $?

#重启web服务

systemctl reload nginx

systemctl restart nginx

因为这个是把原有的证书进行替换和更新所以有时候会出现问题 但是目前还没发现什么大问题

定时任务

创建定时任务更新证书

1
2
bash /usr/local/share/acme/auto.sh 
>> /volume1/docker/acme/log.txt 2>&1

jellyfin 使用SSL证书

我的jellyfin想要使用ssl登录但是jellyfin的证书需要时pfx类型的所以需要使用openssl进行转换

1
2
3
4
cd /volume1/docker/acme

openssl pkcs12 -export -out cert.pfx -inkey /usr/local/share/acme/aboyzy.top_ecc/aboyzy.top.key -in /usr/local/share/acme/aboyzy.top_ecc/aboyzy.top.cer -passout pass:888888

(可以将这段代码添加到申请证书的定时任务后边 替换证书的时候将jellyfin的证书也进行更新)

声明

/usr/local/share/acme 为acme安装路径
/volume1/docker/acme 为jellyfin证书输出路径
aboyzy.top为我的域名

acme 具体使用参数请参考acme.sh 使用文档