当服务器将带有自签名证书的整个证书链发送给客户端时,OpenSSL“证书链中的自签名证书”

当服务器将带有自签名证书的整个证书链发送给客户端时,OpenSSL“证书链中的自签名证书”

我有以下证书链:

自签名证书 --> 中间 --> 客户端证书,服务器证书。我有 SSL 通信应用程序,也验证了对等设置。我尝试使用openssl s_client命令测试此链,然后得到Verify return code: 19 (self signed certificate in certificate chain)。服务器在握手中发送整个链。

我尝试使用包含自签名和中间证书的 Bundle.pem 以及 Self-signed.pem 进行测试,但结果相同。

openssl s_client -msg -connect localhost:1500 -CAfile Self-signed.pem/Bundle.pem -cert Client.crt -key Client.key

然后我颁发了另一个中间证书,并从该证书颁发了新的服务器证书

openssl s_client -msg -connect localhost:1500 -CAfile Bundle2.pem -cert Client.crt -key Client.key

Bundle2.pem 包含第二个中间证书和自签名证书,这很好用。此外,服务器现在不会发送整个证书链,这是应用程序的设计方式。

有人能解释一下为什么这是个问题吗,为什么如果服务器和客户端有相同的中间证书我就无法成功验证?

答案1

basicConstraints=CA:TRUE通过在颁发时添加openssl.conf到中级证书来解决这个问题

相关内容