我在服务器上安装了有效证书,并且在将 -CApath 选项与 OpenSSL 一起使用时,证书链有效。但是,如果我不提供 -CApath 选项,我会收到:
19:self signed certificate in certificate chain
当我在没有 -CApath 的情况下尝试使用 Google 的 HTTPS 端口时,OpenSSL 返回:
20:unable to get local issuer certificate
两者有什么区别?
我在服务器上安装了有效证书,并且在将 -CApath 选项与 OpenSSL 一起使用时,证书链有效。但是,如果我不提供 -CApath 选项,我会收到:
19:self signed certificate in certificate chain
当我在没有 -CApath 的情况下尝试使用 Google 的 HTTPS 端口时,OpenSSL 返回:
20:unable to get local issuer certificate
两者有什么区别?
它们是非常相似的错误。它们都表明信任链并未以受信任的证书结束。不同之处在于前一个错误发生在链在中间证书上结束时发生,而后者发生在链在根证书上结束时发生。
如果根证书未知,则 20 是预期的错误。信任链以中间证书结尾,您无法获得颁发者的证书。
如果服务器出于某种原因在链中发送自签名根证书,则会出现 19。客户不会使用根证书,除非他们信任它,如果他们信任它,他们已经拥有它——所以发送它是没有意义的。但也没有坏处。它只是更改错误消息。
所以我会得出结论,在您的服务器上,您将根证书配置为链证书。因此,您的服务器正在将该根证书提供给客户端。这是不必要的,但据我所知是无害的。