acme的优势:免费、支持域名通配、支持自动更新;
-
下载工具
curl https://get.acme.sh | sh -s email=my@example.com
-
生成证书
正常来说直接按照文档上来生成就行了
./acme.sh --issue -d example.com -w /home/wwwroot/example.com
但是我使用的是阿里云的域名,选择阿里云的dns可能更合适一点
# 指定阿里云的key和secret export Ali_Key="<key>" export Ali_Secret="<secret>" # 然后生成证书 ./acme.sh --issue --dns dns_ali -d example.com -d *.example.com
-
证书自动更新
acme.sh --install-cert -d example.com \ --key-file /path/to/keyfile/in/nginx/key.pem \ --fullchain-file /path/to/fullchain/nginx/cert.pem \ --reloadcmd "service nginx force-reload"
关于自动更新:执行这个之后就是每60天自动更新,重新生成将这两个文件复制到对应的目录,然后替我们执行一遍reloadcmd参数中指定的重新加载的命令,reloadcmd这个参数是不可缺少的。因为证书可以自动更新,但是生效还需要reload。
基于这个原理的话,其实也可以自己写个脚本来实现这些步骤,但是单域名的话,就不需要多此一举了。
注意
:acme是安装在用户目录下,而且是读取的环境变量,在使用阿里云的dns的时候,每个域名都需要重新配置key和secret这两个环境变量,所以不能对多域名生效。
如果是看官方文档的话,需要看两个地方: