273 字
1 分钟
Let's Encrypt 自动续期踩坑:证书续了,服务却没重载
帮朋友排查一个”证书过期”的问题,翻日志发现 acme.sh 每次续期都是成功的,证书文件也是新的,但浏览器里看到的证书还是两个月前那张。
问题在哪
他当初装证书时 --reloadcmd 写的是 nginx -s reload,但真正用证书的是另一个进程,nginx 只是路过。证书续了、文件换了,那个进程却从头到尾没重启过,内存里还是旧证书。
正确姿势
acme.sh --install-cert -d example.com --ecc \ --fullchain-file /path/fullchain.pem \ --key-file /path/key.pem \ --reloadcmd "systemctl restart 你的服务"关键是 reloadcmd 必须指向真正加载证书的那个服务,而不是想当然写个 nginx。
验证方法
echo | openssl s_client -connect 你的域名:443 -servername 你的域名 2>/dev/null \ | openssl x509 -noout -dates另外建议在日历上设个提醒,每两个月看一眼线上证书的 notAfter,别完全信任自动续期。
Let's Encrypt 自动续期踩坑:证书续了,服务却没重载
https://oliver6868686.tech/posts/acme-renew-reload/