有个功能网站要到ssl证书,穷人只能选用Let’s encrypt的免费证书,但现在证书每3个月就得续期一次。这2天刚好到期了,使用续期命令:
./letsencrypt-auto renew
提示失败,多次尝试无果。直达注意到错误提示中有404错误字样,才想起 在nginx 对该域名, 80端口和443端口 的配置是分别指向不同文件夹(看起来是2个网站),而且80端口的server { } 配置置前,并没有写入证书地址配置。
于是修改了 80端口的server { } 至于 443端口相同,重新执行续期命令,这次没有报错。
提示续期成功后记得重启nginx才能在浏览器看到新的证书。
/etc/init.d/nginx restart
续期成功后我又改回了原来的配置。回想一下这个过程,应该是Let’s encrypt证书续期命令中,有包含用80端口访问域名的检查模块,而我同域名80端口和443端口设置完全不同导致了其检查不到相关文件而报错。
如果你也在Let’s encrypt证书续期中报错,提示404,那就快检测一下nginx中通域名80端口和443端口 的server { }吧。先改一致续期成功再改回,或是试试只加入 证书地址 语句试试看。