OpenSSL:无法验证Experian URL的第一个证书 [英] OpenSSL: unable to verify the first certificate for Experian URL

查看:1011
本文介绍了OpenSSL:无法验证Experian URL的第一个证书的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在Ubuntu 10.10中使用OpenSSL客户端验证到Experian的SSL连接。

I am trying to verify an SSL connection to Experian in Ubuntu 10.10 with OpenSSL client.

openssl s_client -CApath /etc/ssl/certs/ -connect dm1.experian.com:443

问题是连接以验证返回码关闭:21(无法验证第一个证书)。

The problem is that the connection closes with a Verify return code: 21 (unable to verify the first certificate).

我已检查证书列表,并且用于签署Experian(VeriSign 3级安全服务器CA-G3)的证书包含在列表中。

I've checked the certificate list, and the Certificate used to sign Experian (VeriSign Class 3 Secure Server CA - G3) is included in the list.

/etc/ssl/certs/ca-certificates.crt 

但我不知道为什么它不能验证第一个证书。
提前感谢。

Yet I don't know why it is not able to verify the first certificate. Thanks in advance.

整个回复可以在这里看到:
https://gist.github.com/1248790

The entire response could be seen here: https://gist.github.com/1248790

推荐答案

第一个错误讯息告诉您更多关于问题:

The first error message is telling you more about the problem:


验证错误:num = 20:无法获取本地颁发者证书

verify error:num=20:unable to get local issuer certificate

结束实体服务器证书的颁发证书颁发机构是

The issuing certificate authority of the end entity server certificate is


VeriSign Class 3 Secure服务器CA - G3

VeriSign Class 3 Secure Server CA - G3

仔细检查您的CA文件 - 您将不会找到此证书,因为一个中介CA - 您发现的是一个类似命名的 G3 Public VeriSign的主要CA。

Look closely in your CA file - you will not find this certificate since it is an intermediary CA - what you found was a similar-named G3 Public Primary CA of VeriSign.

但是为什么其他连接成功,这一个不?问题是服务器配置不正确(请参见 -debug 选项)。 好服务器在握手期间发送整个证书链,因此为您提供必要的中间证书。

But why does the other connection succeed, but this one doesn't? The problem is a misconfiguration of the servers (see for yourself using the -debug option). The "good" server sends the entire certificate chain during the handshake, therefore providing you with the necessary intermediate certificates.

但是失败的服务器只会向您发送 结束实体证书,而OpenSSL无法下载缺少的中间证书飞(这可能通过解释授权信息访问扩展)。因此,您的尝试将失败使用 s_client ,但它会成功,但如果你浏览到相同的URL使用例如。 FireFox(它支持证书发现功能)。

But the server that is failing sends you only the end entity certificate, and OpenSSL is not capable of downloading the missing intermediate certificate "on the fly" (which would be possible by interpreting the Authority Information Access extension). Therefore your attempt fails using s_client but it would succeed nevertheless if you browse to the same URL using e.g. FireFox (which does support the "certificate discovery" feature).

您的选择是解决这个问题是通过使服务器发送整个链,也可以将缺少的中间证书作为客户端参数传递给OpenSSL。

Your options to solve the problem are either fixing this on the server side by making the server send the entire chain, too, or by passing the missing intermediate certificate to OpenSSL as a client-side parameter.

这篇关于OpenSSL:无法验证Experian URL的第一个证书的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆