当我使用openssl API来验证服务器证书(自签名)时,我收到以下错误:
1深度查找处的错误19:证书链中的自签名证书
根据openssl documentation,此错误(19)为
“X509错误自签名证书链:证书链中的自签名证书-可以使用不受信任的证书构建证书链,但在本地找不到根证书。”
为什么会出现此错误?我的服务器证书有问题吗?
当我使用openssl API来验证服务器证书(自签名)时,我收到以下错误:
1深度查找处的错误19:证书链中的自签名证书
根据openssl documentation,此错误(19)为
“X509错误自签名证书链:证书链中的自签名证书-可以使用不受信任的证书构建证书链,但在本地找不到根证书。”
为什么会出现此错误?我的服务器证书有问题吗?
5条答案
按热度按时间hmae6n7t1#
你有一个自签名的证书,所以默认情况下它是 * 不可信的 *,这就是OpenSSL抱怨的原因。这个警告实际上是一件好事,因为这种情况也可能由于man-in-the-middle attack而出现。
若要解决此问题,您需要将它安装为受信任的服务器。如果它是由不受信任的CA签署的,您还必须安装该CA的证书。
查看此链接了解如何安装自签名证书。
q3qa4bjr2#
下面是验证由特定CA签名的证书的一行代码:
openssl verify -verbose -x509_strict -CAfile ca.pem certificate.pem
这不需要在任何地方安装CA。
有关详细信息和正确的证书链处理,请参阅How does an SSL certificate chain bundle work?。
0pizxfdo3#
如果您正在运行Charles并尝试构建docker容器,则很可能会出现此错误。
确保禁用
proxy -> macOS proxy
下的Charles(macos)代理查尔斯是一个
HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看其计算机与Internet之间的所有HTTP和SSL / HTTPS通信。
因此,任何类似的问题都可能导致相同的问题。
jucafojl4#
错误的解决方案是在代码的顶部添加以下行:
3gtaxfhh5#
如果您正在使用Postman测试您的端点,只需转到设置并禁用“启用SSL证书验证”