【发布时间】:2011-05-05 10:41:55
【问题描述】:
我遇到了一个问题并试图调试它。我们购买了威瑞信证书。当我们使用:
openssl> s_client -connect myweb.com:443 -showcerts
SSL 握手从未完成,最后我们看到错误:
Verify return code: 19 (self signed certificate in certificate chain)
它显示了 3 个---BEGIN/END CERTIFICATE--- 标签。链中的两个证书是 Verisign 签名的,但一个是自签名的。
如果有人能解释一下这个自签名证书是如何出现在 CA 签名证书中的?
这个错误
19 (self signed certificate in certificate chain)是良性的吗?如果不是,可能是什么原因造成的?-
客户端在受信任的存储中拥有 CA 证书,但自签名证书没有任何内容。你认为这会导致问题吗?如果是,我该怎么做:
- 如何从链证书中删除自签名证书,只留下链中的 2 个 CA 签名证书?
- 将此自签名证书添加到客户端可信存储?
【问题讨论】:
-
谢谢布雷茨基。我将检查中间证书。我想添加更多信息:当客户端发送上述 openssl 命令时,“client hello”到达服务器,但我们从未在客户端收到“server hello”。如果缺少中间证书,您是否期望这种行为?设备是windows mobile设备,服务器是apache web server。
-
证书加载在什么类型的服务器/设备上?
-
您可以通过 OpenSSL 从其他设备/计算机进行连接吗?哪个版本的 Windows Mobile,我对 Windows mobile 和安全证书有过噩梦般的体验。
-
尝试向服务器发送一个空行作为输入:echo "" | openssl ....