宝塔面板更换新申请SSL证书后,保存报错Nginx配置规则错误解决办法!

今天临下班忽然想起来某个站点的SSL证书应该快到期了,就顺手申请了免费SSL证书给更新了,更新完之后发现另一个站点证书已经到期了,就业申请了证书,结果在保存的时候提示错误,错误代码如下。

nginx配置规则错误:

nginx: [emerg] cannot load certificate "/etc/letsencrypt/live/url.cn/fullchain.pem": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/url.cn/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)

nginx: configuration file /www/server/nginx/conf/nginx.conf test failed

解决办法

1、看到PEM应该是证书出错了,就把站点的SSL关闭,但是关闭强制https,关闭SSL,依然不行,保存的时候,同样报错;

2、重新Nginx,依然保存,无法重启,看到Nginx有版本更新,就顺手更新了一下;

3、忽然发现url.cn这个域名是第一个快到期的域名证书,把第一个站点域名SSL关闭,https关闭,保存,未报错;

4、将第二个已过期的域名开启SSL,保存,未报错;

5、开启第一个未过期域名的SSL,保存,未报错;

6、重启Nginx,正常重启,未报错。

总结

我的环境是阿里云(香港)+Nginx 1.17.9+宝塔7.1.0+CentOS 7.6.1810,场景重现基本就是更新新申请的SSL证书报错,关闭后重启Nginx解决问题,做个记录,以免再次出错。