注意:对于重要的线上服务不要用自动续期了;可靠性不敢保证,遇到过几次执行续期脚本导致证书出问题的情况,服务突然就不能用了。
自动续期只用在不重要的服务商,省了事,就算出问题也影响不大。
当前 FreeSSL.cn开始提供自动续期的HTTPS证书,利用HACME 脚本实现,操作方法如下:
建议切换到root模式,可以减少证书安装时的问题
sudo su
注意:MacOS 不用切换到root更简单。
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m [email protected]
注意:安装完成后,再重新打开命令行(如果是 SSH,选择重新连接),以使 acme.sh
命令生效。
在 FreeSSL 站点申请证书,选择自动续期模式
获得域名验证(DCV)授权信息
到您的域名解析服务商添加解析记录
点击【配置完成,立即检测】后获得证书申请命令
以 Nginx 部署为例,对上面命令 1 进行如下修改:
/root/.acme.sh/acme.sh --issue -d 域名 --dns dns_dp \
--server {你的专属 ACME 地址} \
--key-file /alidata/data/ssl/test.com/private.key \
--fullchain-file /alidata/data/ssl/test.com/full_chain.pem \
--reloadcmd "/bin/lnmp nginx reload"
运行命令申请证书
执行上述命令后会自动将续期脚本添加到crontab定时任务,当证书还有一个月到期时会自动续期。
"/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh"
listen 443 ssl;
ssl_certificate /alidata/data/ssl/test.com/full_chain.pem;
ssl_certificate_key /alidata/data/ssl/test.com/private.key;
官方文档:ACME v2证书自动化快速入门
若某个域名不再使用,我们想把该域名在服务器定时任务中的自动续期关闭,可以执行以下命令
"/root/.acme.sh"/acme.sh --remove --domain {具体的域名}
[Thu 28 Sep 2023 09:34:39 AM CST] {具体的域名} is removed, the key and cert files are in /root/.acme.sh/{具体的域名}
[Thu 28 Sep 2023 09:34:39 AM CST] You can remove them by yourself.
删除自动续期后你也可以选择删除原来生成的证书文件, 位于目录 /root/.acme.sh/{具体的域名}
下.
注意 --remove
参数只是停止续期,并未吊销证书。
通配符域名证书的标识范围:
如设置通配符域名证书 *.test.com ,a.test.com 域名可以使用该证书,但 a.b.test.com 则不行
[1]
FreeSSL: https://freessl.cn/[2]
ACME v2证书自动化快速入门: https://blog.freessl.cn/acme-quick-start/