引言

今天突然接到一个开发反馈奇怪的报错,说访问证书返回报错

 x509: certificate signed by unknown authority try-again: 2

排查

一开始觉得可能是对方证书过期了,毕竟他们一开始反馈过来说是证书过期让我处理,我一看,诶证书是三月份刚换的那批,应该是没有问题的,于是我登录服务器看,发现时间是往前调的。但是调了才几天,理论上只要系统时间没有到达证书过期时间就没有事才对。

因为他们是付费通配证书,理论上不应该出现这个报错,这个报错我逐字翻译了一下是“由未知权威机构签署的证书”的意思,按照常规道理来说,这个报错应该是自签证书导致,但是这个证书并非自签证书。

于是我继续往下思考与寻找,直到找到这篇文章:RHEL/CentOS 7 修复 Let’s Encrypt 更改

原文大概意思是:
使用 Centos 7 在 2021年9月30日起环境出现异常现象是由于CA证书过期问题引起的可执行下列命令更新CA证书,CA证书过期会导致一些安全的curl SSL请求异常。

yum install -y ca-certificates
update-ca-trust

经过分析与判断,可能就是这个原因。于是我尝试执行了更新,由于系统是老的CentOS6.5的,我yum以前提前做了repo的替换,换成南开大学的yum源,然后执行上述命令。

经过安装处理后,让开发再去测试,发现已经正常了。

总结分析

分析原因可能是系统的CA根证书太久远,无法识别这个证书颁发者,只要更新一下CA根证书就好了。这种情况仅适用于较老的机子可能有这个问题,如果是新搭建的机子可能要分析一下是否有其它问题了。
以上就是本次事件的解决过程及分析,做个记录,希望下次不要再遇到了