现在免费申请证书的途径很多,可以在域名服务商那里直接申请,这种证书一般是单域名的证书,那么问题来了,有没有适合群晖的证书申请方法,即能免费申请泛域名,又能自动更新证书呢,这样一劳永逸的方法,只需前期一次配置,后面就可以自动更新了。
安装acme.sh程序
使用putty或其它工具登陆群晖SSH端口,输入以下命令安装到/volume1/cert文件夹内:
wget https://github.com/Neilpang/acme.sh/archive/master.tar.gz
tar xvf master.tar.gz
cd acme.sh-master/
chmod a+x acme.sh
./acme.sh –install –nocron –home “/volume1/cert/acme.sh”
或者直接在https://github.com/Neilpang/acme.sh下载后,解压到相应文件夹内。
获取域名服务商服务ID和密码并配置
域名服务商的ID和key,一般很容易获取,方法本网也有很多介绍的,这里就不啰嗦了。
然后去Dnsapi文件夹里找到对应的服务商文件配置,比如阿里云的是“dns_ali”,而腾迅云的是”dns_dp“,这样只需将前面记录的到该文件里修改即可,另需将其前面”#”去掉,让设置生效:
生成证书并配置自动更新配置
配置好后,请选用相应的代码进行生成证书,“/volume1/cert”是证书文件保存的位置,“dns_ali”是你服务商对应的代号,“example.cn”是你的域名,所以代码是:
2022.05.01 : 由于原默认服务提供商为Let’s Encrypt,2021/08/01之后变为ZeroSSL(参考:https://github.com/acmesh-official/acme.sh/wiki/Change-default-CA-to-ZeroSSL),所以此处还需要增加以下步骤:
如果仍想使用Let’s Encrypt作为服务提供商,请在上述代码后面加上“–server letsencrypt”
如果使用默认ZeroSSL作为服务提供商,需要在生成证书前,先关联ZeroSSL的注册邮箱:
这一步执行后,会给你反馈一些信息,但是不用记,后续生成证书后在ZeroSSL的网站也可以查到记录。
一般如果配置成功的话,可以直接产生相应的证书,文件夹是以你的域名命名的,例如”example.cn”,里面有7个文件,分别是证书和系统文件,这样才成功。
如果需要自动更新,一般一个月更新一次就够了,更新脚本是:
我这里使用的是群晖的计划任务,进行生成证书:
由于生成的证书是不包含pfx的,所以我在加了一个命令,生成pfx证书文件,其中“pass:123456”是pfx文件的密码,需自己设置:
2022.05.01 : acme也自带了生成pfx证书的命令:
证书自动安装
更新脚本只能更新证书,但不可能每次手动去更新一次,太麻烦了,我们做一个脚本自动安装,先去“/usr/syno/etc/certificate/_archive”目录看,里面会有刚上传证书的目录,记住他的地址,然后运行脚本:
这里只需将example.cn改为你的域名,/usr/syno/etc/certificate/_archive/USAEVy改为你的地址就好了,然后运行该脚本,一般一个月一次,这个脚本要比上一个晚半个小时左右才好。
本文地址: 群晖:acme.sh申请泛域名证书