我遇到了问题并尝试调试它.我们购买了Verisign证书.当我们使用时:
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签名证书?
在客户端信任存储上添加此自签名证书?
Bruno.. 72
CA颁发的根证书只是自签名证书(可以反过来用于颁发中间CA证书).除了在许多浏览器或操作系统信任锚中默认导入它们之外,它们没有太多特别之处.
虽然浏览器和某些工具被配置为默认情况下在位置中查找可信CA证书(其中一些可能是自签名的),但据我所知,openssl
命令不是.
因此,任何提供完整证书链的服务器,从其最终实体证书(服务器证书)到根CA证书(可能具有中间CA证书),都将在链中具有自签名证书:根CA .
openssl s_client -connect myweb.com:443 -showcerts
没有任何特别的理由相信Verisign的根CA证书,并且因为它是自签名的,您将获得" 证书链中的自签名证书 ".
如果您的系统具有默认情况下受信任的证书包的位置(我认为/etc/pki/tls/certs
在RedHat/Fedora和/etc/ssl/certs
Ubuntu/Debian上),您可以配置OpenSSL以将它们用作信任锚,例如:
openssl s_client -connect myweb.com:443 -showcerts -CApath /etc/ssl/certs
我不认为OSX默认有一个,因为它依赖于Keychain.您可以进入Keychain Access,选择"System Roots"中的所有证书(除了那些证据除外),右键单击并将所有项目导出到PEM文件中,然后使用`-CAfile`(而不是`-CApath `)指向该文件. (5认同)
OS X的-CApath是什么? (2认同)
Brettski.. 8
听起来好像缺少中间证书. 截至2006年4月,VeriSign颁发的所有SSL证书都要求安装中级CA证书.
可能是您没有在服务器上加载整个证书链.某些企业不允许其计算机下载其他证书,导致无法完成SSL握手.
以下是有关中间链的一些信息:
https://knowledge.verisign.com/support/ssl-certificates-support/index ? page = content& id =
AR657 https://knowledge.verisign.com/support/ssl-certificates-support /指数?页=含量&ID = AD146
中级CA证书
CA颁发的根证书只是自签名证书(可以反过来用于颁发中间CA证书).除了在许多浏览器或操作系统信任锚中默认导入它们之外,它们没有太多特别之处.
虽然浏览器和某些工具被配置为默认情况下在位置中查找可信CA证书(其中一些可能是自签名的),但据我所知,openssl
命令不是.
因此,任何提供完整证书链的服务器,从其最终实体证书(服务器证书)到根CA证书(可能具有中间CA证书),都将在链中具有自签名证书:根CA .
openssl s_client -connect myweb.com:443 -showcerts
没有任何特别的理由相信Verisign的根CA证书,并且因为它是自签名的,您将获得" 证书链中的自签名证书 ".
如果您的系统具有默认情况下受信任的证书包的位置(我认为/etc/pki/tls/certs
在RedHat/Fedora和/etc/ssl/certs
Ubuntu/Debian上),您可以配置OpenSSL以将它们用作信任锚,例如:
openssl s_client -connect myweb.com:443 -showcerts -CApath /etc/ssl/certs
听起来好像缺少中间证书. 截至2006年4月,VeriSign颁发的所有SSL证书都要求安装中级CA证书.
可能是您没有在服务器上加载整个证书链.某些企业不允许其计算机下载其他证书,导致无法完成SSL握手.
以下是有关中间链的一些信息:
https://knowledge.verisign.com/support/ssl-certificates-support/index ? page = content& id =
AR657 https://knowledge.verisign.com/support/ssl-certificates-support /指数?页=含量&ID = AD146
中级CA证书