尽管安装了根证书,但握手失败(PayPal 升级 - g5 证书 - openssl)

Posted

技术标签:

【中文标题】尽管安装了根证书,但握手失败(PayPal 升级 - g5 证书 - openssl)【英文标题】:Handshake failure although the root certificate is installed (PayPal upgrades - g5 certificate - openssl) 【发布时间】:2016-10-15 00:07:18 【问题描述】:

我有(由于多种原因无法升级)几个运行 Centos 5.11 的虚拟机

作为验证机器是否与此处描述的新 PayPal 更新兼容的检查: https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1766&viewlocale=en_US

我在 shell 中运行了这个:

grep -C 5  --color=always "VeriSign Class 3 Public Primary Certification Authority - G5" /etc/pki/tls/certs/ca-bundle.crt

一切看起来都很好,这是输出:

数据: 版本:3 (0x2) 序列号: 18:da:d1:9e:26:7d:e8:bb:4a:21:58:cd:cc:6b:3b:4a 签名算法:sha1WithRSAEncryption 颁发者:C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - 仅供授权使用,CN=VeriSign Class 3 Public Primary Certification Authority - G5 有效性 不早于:格林威治标准时间 2006 年 11 月 8 日 00:00:00 不晚于:格林威治标准时间 2036 年 7 月 16 日 23:59:59 主题:C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - 仅供授权使用,CN=VeriSign Class 3 Public Primary Certification Authority - G5 主题公钥信息: 公钥算法:rsaEncryption 公钥:(2048 位) 模数: 00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:

对我来说,这意味着新的所需 G5 根证书实际上就在其中。 但是,当针对应该已经使用新规范的沙盒进行测试时:

openssl s_client -connect api-3t.sandbox.paypal.com:443 -showcerts

回复是:

已连接(00000003) 2052:错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败:s23_clnt.c:586:

当然,在非沙盒链接上执行相同操作时没有问题。

我 101% 被困在这里。证书在那里,但我仍然失败? 已安装的 Openssl(以及通过官方 repos 获得的最新信息)是 openssl-0.9.8e-40.el5_11。

我看到了有关握手问题的其他几个问题,但似乎都没有解决这样的问题(证书到位但仍然存在连接问题)。

知道为什么会这样吗?

编辑: 通过尝试以这种方式在调用中使用 ssl3:

openssl s_client -ssl3 -connect api-3t.sandbox.paypal.com:443 -showcerts

我得到了这个:

已连接(00000003) 6064:错误:14094410:SSL 例程:SSL3_READ_BYTES:sslv3 警报握手失败:s3_pkt.c:1092:SSL 警报编号 40 6064:错误:1409E0E5:SSL 例程:SSL3_WRITE_BYTES:ssl 握手失败:s3_pkt.c:536:

【问题讨论】:

【参考方案1】:

openssl-0.9.8e-40.el5_11.

Paypal 要求您支持 TLS 1.2。仅自 4 年前发布的 OpenSSL 版本 1.0.1 起才支持 TLS 1.2。而且由于您的旧版本 OpenSSL 不支持 TLS 1.2,但最多支持 TLS 1.0,您会收到握手错误。这与证书无关。

【讨论】:

不幸的是,你是完全正确的。 5分钟前我自己也发现了同样的情况。可悲的是,Centos 5.x 似乎完全无法更新。我将不得不考虑一些“创意”,因为更新服务器不是一种选择

以上是关于尽管安装了根证书,但握手失败(PayPal 升级 - g5 证书 - openssl)的主要内容,如果未能解决你的问题,请参考以下文章

客户端 Hello 后的 SSL 握手致命错误

Paypal Sandbox IPN: 14077410:sslroutines:ssl23_get_server_hello:sslv3 警报握手失败

最近的 Java 升级导致椭圆曲线服务器证书的 TLS 握手失败?

Perl PayPal IPN 侦听器返回“500 SSL 握手失败”消息

PayPal IPN 已验证握手但 IPN 无效

尽管有另一种货币的可用资金,但 PayPal 沙盒以一种货币重复付款失败