Loading...

记一次Let’s Encrypt证书问题的解决过程

在我创建服务器的时候,我发现了这样一个提示

排除了多种错误之后,我想到是不是SSL出现了问题呢.

当我用curl对着后端地址直接访问的时候,返回了libcurl error(60).根据curl官方的说法,这个错误来自无法验证对等CA证书.考虑到前段时间我家里的NAS对赛门铁克的证书也出现了无法信任的现象,我就猜测是不是CentOS7自带的证书库里面与Let’s Encrypt相关的证书过期了.
Google一番之后,我找到了Let’s Encrypt的中间根证书,但是发现没啥用啊,这是一份自签名根证书.接着换了各种关键词去搜索,发现还有一种东西叫做证书链(CertificateChain).由于签发证书用的是ACME.SH脚本,他在每个签发完的域名文件夹下面都会存放一份Let’s Encrypt的证书链文件.抱着试一试的心态,按照这篇文章里面所写的方法,将证书链文件复制到/etc/pki/ca-trust/source/anchors,接着运行/bin/update-ca-trust进行证书库升级.

搞完这些,再次用curl对面板后端地址进行访问,直接返回

{
“error”: “Missing required X-Access-Token header.”
}

(在没有附加Token的时候访问就会返回这个,但这个证明https通信成功了)

OK,证书问题就这么解决了

PS:考虑到Let’s Encrypt在更换证书链,赛门铁克和Digicert又并购,再加上CentOS本来更新就缓慢,各位以后遇到证书不受信任的时候不妨也这么操作试一试.

发表评论

》表情