握手失败虽然安装了根证书(PayPal升级 - g5证书 - openssl)

时间:2016-06-14 10:04:55

标签: php ssl curl paypal

我有几台运行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公共主要证书颁发机构 - G5           合法性               不是之前:2006年11月8日00:00:00 GMT               不是之后:格林威治标准时间7月16日23:59:59 2036 GMT           主题:C = US,O = VeriSign,Inc.,OU = VeriSign Trust Network,OU =(c)2006 VeriSign,Inc。 - 仅供授权使用,CN = VeriSign Class 3公共主要证书颁发机构 - 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

回复是:

  

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

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

我101%被困在这里。证书在那里,但我仍然失败了? 已安装的Openssl(以及最新的官方回购利用)是openssl-0.9.8e-40.el5_11。

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

知道为什么会这样吗?

编辑: 同时尝试以这种方式调用ssl3:

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

我得到了这个:

  

CONNECTED(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 个答案:

答案 0 :(得分:0)

  

的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,因此会出现握手错误。这与证书无关。