我有以下证书链:
自签名证书 --> 中间证书 --> 客户端证书、服务器证书。我有 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 包含第二个中间证书和自签名证书,这工作正常。此外,服务器现在不发送整个证书链,这是应用程序的设计方式。
有人可以解释为什么这是一个问题,如果服务器和客户端具有相同的中间证书,为什么我无法成功验证?
basicConstraints=CA:TRUE
通过在openssl.conf
颁发时添加到即时证书来解决此问题