pdj*_*ota 71 ssl openssl certificate
我正在尝试使用OpenSSL客户端验证在Ubuntu 10.10中与Experian的SSL连接.
openssl s_client -CApath /etc/ssl/certs/ -connect dm1.experian.com:443
Run Code Online (Sandbox Code Playgroud)
问题是连接以Verify返回代码关闭:21(无法验证第一个证书).
我检查了证书列表,用于签署Experian(VeriSign Class 3安全服务器CA-G3)的证书包含在列表中.
/etc/ssl/certs/ca-certificates.crt
Run Code Online (Sandbox Code Playgroud)
但我不知道为什么它无法验证第一张证书.提前致谢.
整个响应可以在这里看到:https: //gist.github.com/1248790
emb*_*oss 101
第一条错误消息告诉您有关该问题的更多信息:
验证错误:num = 20:无法获得本地颁发者证书
最终实体服务器证书的颁发证书颁发机构是
VeriSign Class 3安全服务器CA - G3
在您的CA文件仔细一看-你会不会因为它是一个中介CA发现该证书-你发现了什么是一个类似的名为 VeriSign公司的G3公立小学CA.
但是为什么另一个连接成功,但这个连接没有?问题是服务器配置错误(请参阅使用该-debug
选项自行查看)."好"服务器在握手期间发送整个证书链,因此为您提供必要的中间证书.
但是,失败的服务器只向您发送最终实体证书,而OpenSSL无法"动态"下载丢失的中间证书(这可以通过解释授权信息访问扩展来实现).因此,s_client
如果您使用例如FireFox(支持"证书发现"功能)浏览相同的URL,您的尝试将无法使用,但它会成功.
解决问题的方法是在服务器端通过使服务器发送整个链来修复此问题,或者将缺少的中间证书作为客户端参数传递给OpenSSL.
spu*_*der 40
为浮雕的答案添加其他信息.
简而言之,证书链中存在不正确的证书.
例如,您的证书颁发机构很可能会给您3个文件.
您很可能将所有这些文件合并为一个包.
-----BEGIN CERTIFICATE-----
(Your Primary SSL certificate: your_domain_name.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Intermediate certificate: DigiCertCA.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Root certificate: TrustedRoot.crt)
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
如果您创建捆绑包,但使用旧版或不正确版本的中级证书(在我的示例中为DigiCertCA.crt),您将获得您所描述的确切症状.
从证书颁发机构重新下载所有证书并制作新的捆绑包.
gli*_*ter 11
我遇到了在Amazon Elastic Load Balancer实例上安装签名证书的相同问题.
所有似乎都通过浏览器(Chrome)找到,但通过我的Java客户端访问该网站产生了异常javax.net.ssl.SSLPeerUnverifiedException
在我的ELB实例上安装证书时,我没有做的是提供"证书链"文件(参见https://serverfault.com/questions/419432/install-ssl-on-amazon-elastic-load-balancer-with -godaddy-wildcard-certificate)
我们只是从签名机构发送了我们签名的公钥,因此我必须创建自己的证书链文件.使用我的浏览器的证书查看器面板,我在签名链中导出了每个证书.(重要的证书链的顺序,请参阅https://forums.aws.amazon.com/message.jspa?messageID=222086)
归档时间: |
|
查看次数: |
174350 次 |
最近记录: |