Chinamainland 家宽的80/443端口是不开放的,所以群晖自带的证书更新无法使用,下面介绍用acme.sh的方法。此文章在黑群晖6.1.7上测试成功。
先SSH进系统
1.安装acme.sh
先在 volume5
下新建文件夹@acme
,然后下面命令安装:
1
2
3
4
wget https://github.com/Neilpang/acme.sh/archive/master.tar.gz
tar xvf master.tar.gz
cd acme.sh-master/
./acme.sh –install –nocron –home /volume5/@acme/acme.sh/
2.用dnspod API生成Let’s证书
注意:不要用ecc证书,重启证书会失效,FTPS也不支持。
安装命令如下:
1
2
3
export DP_Id="xxxxx"
export DP_Key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
/volume5/@acme/acme.sh/acme.sh –home "/volume5/@acme" –issue –dns dns_dp -d demo.com –dnssleep 30
到此,去群晖的web里,控制面板-安全性-证书里,把默认的证书先替换成acme.sh生成的证书(/volume5
/@acme
/demo.com
内),见下图,主要是为了防止配置信息丢失。
现在证书已经装好了,每次安按照上面的方式手动更新证书也可以。
3.全自动更新证书
输入下面一条命令(g3i0CB
是默认证书所在的文件夹,和DEFAULT文件里内容一致,自行修改。INFO文件是配置信息,不要乱改。demo.com
是你自己的域名):
1
/volume5/@acme/acme.sh/acme.sh –home "/volume5/@acme" –install-cert -d demo.com –fullchain-file /usr/syno/etc/certificate/_archive/g3i0CB/fullchain.pem –key-file /usr/syno/etc/certificate/_archive/g3i0CB/privkey.pem –cert-file /usr/syno/etc/certificate/_archive/g3i0CB/cert.pem –ca-file /usr/syno/etc/certificate/_archive/g3i0CB/chain.pem –reloadcmd "rsync -avzh /usr/syno/etc/certificate/_archive/g3i0CB/ /usr/syno/etc/certificate/system/default/ && rsync -avzh /usr/syno/etc/certificate/_archive/g3i0CB/ /usr/syno/etc/certificate/smbftpd/ftpd && /usr/syno/etc/rc.sysv/nginx.sh reload"
建个.sh脚本,添加到计划任务里,每天自动运行一次:
1
/volume5/@myshell/acme_update.sh >> /volume5/@myshell/log.txt 2>&1
acme_update.sh脚本内容:
1
/volume5/@acme/acme.sh/acme.sh –home "/volume5/@acme" –renew –dns dns_dp -d demo.com