|
https是非常有用的一种服务,尤其是在大家自己的主机上搭建网站的时候,能防止服务器到客户端之间的数据被中间人篡改。但是用https就需要给自己的网站做CA证书。个人应用的时候大多会选Let's Encrypt的免费CA签名服务。但在经历了2021年9月Let's家的根CA过期问题后,大家犹如惊弓之鸟,总觉得它家的CA签发不稳定,有可能造成浏览器提示CA过期。大家纷纷更换门门庭。其实,浏览器提示你网站的CA证书过期,还有另一种可能,就是你网站上Let's家的CA证书虽然及时更新了,而你的程序没有重新装载它! ^_^
Let'sEncrpyt的certbot更新时,要停止Nginx,然后下载新证书,例如 fullchian3.pem 等等,并生成对应的ln -s 软连接到 fullchian.pem;再启动 Nginx。一般此时,443端口是由Nginx运行的,它会根据nginx/conf.d/xxxxx.conf里指定的ssl配置文件,来reload新的证书的内容,从而不会有任何问题。
而如果是其他程序运行443端口的时候,例如,443是由A程序运行的:这个进程它一直在运行,不知道证书有变化,所以一直使用的是旧证书的内容,则浏览器看 https://域名/ 时呈现出来的信息,确实就是过期的CA证书(因为A程序没有使用fullchian3.pem,而是继续在用fullchian2.pem之类),不信任该网站。
解决方法很简单:
在crontab里执行certbot renew的脚本里,重启Nginx的时候 也重启一下占用443端口的那个程序以装载新的CA证书!
|
|