本站使用Let’s Encrypt SSL证书的历史大概可以追溯到四年前本站搬到腾讯云的时候,Oneinstack可以通过acme.sh一键部署带Let’s Encrypt SSL证书的虚拟主机。
在这四年来,Let’s Encrypt SSL证书一直都会自动续期。我每三个月就会从云服务器上下载SSL证书,然后安装到腾讯云CDN上。
直到上个月开始每天十二点都会收到一封邮件:
于此同时腾讯云也在提醒CDN的SSL证书即将过期,我像往常一样,用SSH登录云服务器,发现证书并没有更新。
于是有了本文。
无法访问Github
执行crontab -l
,查到acme.sh的定时脚本命令。
切换到安装acme.sh的文件夹,执行./acme.sh -cron -home
因为国内你懂的的网络环境,导致无法从Github下载验证DNS的脚本,因此无法续期SSL证书。
把以下内容粘贴到/etc/hosts
即可
140.82.114.4 github.com
185.199.108.153 github.github.io
199.232.69.194 github.global.ssl.fastly.net
199.232.28.133 raw.githubusercontent.com
文件验证链接无法获取结果
在Oneinstack的vhost.sh脚本中,绑定域名为单个泛域名时,如:oneinstack.com *.oneinstack.com,证书签发走acme.sh dnsapi模式,需要输入API相关变量,否则走acme.sh webroot模式。但也可执行./vhost.sh --dnsapi
强制使证书签发走dnsapi模式。
如果使用webroot模式,又使用了ThinkPHP一类的框架,可能就会出现问题。
可以将原来使用webroot模式续期SSL证书的网站改为使用dnsapi模式续期。
将Le_Webroot的内容由网站文件路径改为dnsapi名称再重新执行续期即可,例如阿里云DNS是dns_ali
如果从未使用过DNSAPI功能,可能需要到dnsapi
目录寻找你所用的DNS服务商的脚本填写API信息,才能使用这个功能。
文章评论