c语言 - Openssl : 错误"self signed certificate in certificate chain"



当我使用openssl API验证服务器证书(自签名)时,我得到了以下错误:

错误19在1深度查找:证书中的自签名证书链式

根据openssl文档,此错误(19)为

"X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN:中的自签名证书证书链-可以使用不受信任的证书,但在本地找不到根证书。"

为什么会出现此错误?我的服务器证书有问题吗?

您有一个自签名的证书,因此默认情况下它是不受信任的,这就是OpenSSL抱怨的原因。这个警告实际上是一件好事,因为这种情况也可能因为中间人的攻击而增加。

要解决此问题,您需要将其安装为受信任的服务器。如果它是由一个不受信任的CA签署的,你也必须安装该CA的证书。

看看这个关于安装自签名证书的链接。

下面是一个验证证书由特定CA:签名的行

openssl verify -verbose -x509_strict -CAfile ca.pem certificate.pem

这不需要在任何地方安装CA。

请参阅SSL证书链捆绑包是如何工作的?了解详细信息和正确的证书链处理。

错误的解决方案是在代码顶部添加以下行:

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

如果您正在运行Charles并试图构建一个docker容器,那么很可能会出现此错误。

确保在proxy -> macOS proxy 下禁用Charles(macos)代理

Charles是

HTTP代理/HTTP监视器/反向代理,使开发人员能够查看其计算机和Internet之间的所有HTTP和SSL/HTTPS流量。

因此,任何类似的事情都可能导致同样的问题。

如果您使用Postman测试端点,只需转到设置并禁用"启用SSL证书验证";

您还可以使用以下命令全局跳过SSL验证:

git config --global http.sslVerify false

相关内容

  • 没有找到相关文章

最新更新