无法使用内置CA软件包来validationGoDaddy SHA2 SSL证书

我遇到了一个有趣的问题。 我们有一个PHP脚本,联系LTL托运人( https://facts.dohrn.com/ )。 该脚本由于无法validationSSL证书而失败。 我去了网站,发现他们正在使用GoDaddy SHA2证书(使用GoDaddy证书包 – G2 ,这是用于SHA2)。

我已经安装了最新版本的ca-certificate ,看起来他们有Go Daddy根证书颁发机构 – G2,但这不是一回事,在所有forms的validation中都失败了。 我终于可以通过复制捆绑包并直接在CURL请求中使用它。 但这只是一个解决方法。 有什么我错过了,可以使这个工作没有直接安装CA?

openssl s_client -connect facts.dohrn.com:443
连接(00000003)深度= 0 OU =域控制validation,CN = facts.dohrn.comvalidation
错误:数字= 20:无法获得本地发行人证书validation返回:1
深度= 0 OU =域控制validation,CN = facts.dohrn.comvalidation
错误:num = 27:证书不可信validation返回:1深度= 0 OU =
validation域控制,CN = facts.dohrn.comvalidation
错误:num = 21:无法validation第一个证书validation返回:1
—证书链0 s:/ OU =域控制validation/ CN = facts.dohrn.com
我:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com,
Inc./OU= http://certs.godaddy.com/repository//CN =去爸爸安全
证书颁发机构 – G2
—服务器证书[证书删除]
—–结束证书—–
subject = / OU = Domain Control Validated / CN = facts.dohrn.com
发行者= / C = US / ST =亚利桑那/ L =斯科茨/ O = GoDaddy.com,
Inc./OU= http://certs.godaddy.com/repository//CN =去爸爸安全
证书颁发机构 – G2
—没有客户端证书CA名称发送
— SSL握手已经读取了1470个字节并写入了563个字节
—新增,TLSv1 / SSLv3,密码是RC4-SHA服务器公钥是2048位不支持安全重新协商压缩:无扩展:
无SSL会话:
协议:TLSv1
密码:RC4-SHA
会话ID:1A23000017A7003411F3833970B7FA23C6D782E663CE0C8B17DE4D5A15DEE1A5
会话ID-CTX:
主钥匙:F6C9C6345A09B7965AF762DE4BEFE8BDD249136BF30D9364598D78CF123F17230B0C25DD552F103BEF9A893F75EAD2B0
Key-Arg:无
Krb5负责人:无
PSK身份:无
PSK身份提示:无
开始时间:1432044402
超时:300(秒)
validation返回码:21(无法validation第一个证书)

看来https://facts.dohrn.com/上的Web服务器不包含中间证书。

这似乎是configuration错误的一部分。 这绝对是可以预料到会导致兼容性问题的事情,因为您实际上只能依靠预先具有根证书的客户端。

查看证书链,例如从SSLLabs结果 :(您还会注意到他们的SSL设置还有许多其他问题。)

 1 Sent by server facts.dohrn.com Fingerprint: 823e3a70f194c646498b2591069b3727ad0014d9 RSA 2048 bits (e 65537) / SHA256withRSA 2 Extra download Go Daddy Secure Certificate Authority - G2 Fingerprint: 27ac9369faf25207bb2627cefaccbe4ef9c319b8 RSA 2048 bits (e 65537) / SHA256withRSA 3 In trust store Go Daddy Root Certificate Authority - G2 Self-signed Fingerprint: 47beabc922eae80e78783462a79f45c254fde68b RSA 2048 bits (e 65537) / SHA256withRSA 

我想说,你的主要select是试图说服服务提供商修复他们的服务,或者通过向客户端提供他们的服务器应该提供的证书来解决问题。