CA根证书过期的问题

上一篇文章提到过PHP的curl函数的证书错误

Peer certificate cannot be authenticated with known CA certificates

中文的意思“对等证书不能使用已知的CA证书进行身份验证”。

后来采用了在curl函数中不验证证书的临时解决方法。

虽然问题暂时解决了,但是并没有找到出问题的根本原因,当然也就没有从根本上解决问题。

紧接着,后续又出大问题了。

在linux服务器上的crontab中设置的计划任务也不执行了。里面都是使用的wget加https的URL执行的。
经核查发现:

1、crontab的计划任务是在定期执行的,只是没有执行wget+https的URL请求。

2、上述计划任务中https的URL请求,如果在浏览器执行或postman中执行,都是可以正常执行出结果的。

所以证明是wget在执行https的请求时出问题了。

联系亚狐科技的客服,询问他们的SSL证书是不是出问题了。

回复是,SSL证书本身没有过期,但是颁发SSL证书的CA机构的【根证书】过期了。

回复原话

是CA证书过期了, 您更新下CA证书即可。证书没问题,有问题的是COMODO的上级证书链。浏览器访问都没问题。我可以发您最新的根证书,您替换旧可以。4月30日后签发的证书就没这个问题了。这个问题是历史问题,没办法避免。这样,我全部更新下,您重新下载可以吧。这个我们会注意这个问题,如果再有类似,我通知您。应该不会再发生了。一般如果只是使用浏览器,不会存在问题。是的,我们接收意见,以后避免再发生此类问题。

当然中间有我的提问没有写出来,这是QQ聊天记录的对方回复的部分内容的合并。

之后重新颁发了新的SSL证书,然后更新到所有使用该SSL证书的Nginx服务器之后(重启Nginx),crontab的计划任务可以正常执行了。

总结:

1、CA的根证书快过期本应该提前处理好的,这个根证书时间应该不是每一年一次的。5年或10年吧,还不确定。

2、这个CA根证书过期导致的是一些程序的执行命令和系统方法出问题,在浏览器中使用并不会表现出BUG和错误。(目前已发现明显会受影响的就是PHP的CURL函数和Linux的crontab中的wget命令)

3、当一个问题出现时,必须及时准确地定位到问题的真正和根本原因,并迅速彻底解决;否则,可能会出现更严重的问题。