OpenSSL 中 ERRNO 19 和 20 之间的区别

OpenSSL 中 ERRNO 19 和 20 之间的区别

我在服务器上安装了有效证书,当使用 OpenSSL 的 -CApath 选项时,证书链有效。但是,如果我不提供 -CApath 选项,则会收到以下信息:

19:self signed certificate in certificate chain

当我尝试不使用 -CApath 的 Google HTTPS 端口时,OpenSSL 返回:

20:unable to get local issuer certificate

这两者有何区别?

答案1

它们是非常相似的错误。它们都表明信任链没有以受信任的证书结束。不同之处在于,前者错误发生在信任链以中间证书结束时,而后者错误发生在信任链以根证书结束时。

如果根证书未知,则预期错误为 20。信任链以中间证书结束,您无法获取颁发者的证书。

如果服务器出于某种原因在链中发送自签名根证书,则会发生 19。客户端不会使用根证书,除非他们信任它,如果他们信任它,他们已经拥有它 - 因此发送它毫无意义。但这也没什么坏处。它只是改变了错误消息。

因此,我得出的结论是,在您的服务器上,您已将根证书配置为链式证书。因此,您的服务器正在向客户端提供该根证书。这是不必要的,但据我所知,这是无害的。

相关内容