我正在测试以前工作的PayPal IPN系统的沙盒版本,但现在不起作用。IPN模拟器显示:
"IPN was not sent, and the handshake was not verified. Please review your information."
我查看了有关Verisign G5 CA证书的文档,并按照所示的说明进行操作,但是下面的命令:
openssl s_client -connect api-3t.sandbox.paypal.com:443 -showcerts -CApath /etc/ssl/certs/
仍然产生以下输出:(截断)
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID: 9E01CD86FA9E600EAD505F17E34C0F9BE07E7894E35B20BAF2946F88596BB047
Session-ID-ctx:
Master-Key: 90F662CD0BD319EB87ACFE89CDACEFED2327AC4C827ED74861166B86423B5404
587A70B65BCEA2FAC23F7DDAAA49F9DC
Key-Arg : None
Start Time: 1445624886
Timeout : 300 (sec)
Verify return code: 20 (unable to get local issuer certificate)
我验证了G3证书已经不在证书库中,甚至多次删除和重装新证书。我花了10个小时在这件事上,还看不到结束的迹象。
我有我自己的服务器,所以没有其他管理员我可以求助…我得想办法自己解决这个问题,我已经无计可施了。我知道我对SSL和证书链的了解并不多,但这部分没有帮助,哈哈。
完成这项任务的人是否可以给我一个正确的方向,和/或让我知道我可以提供哪些额外的信息来帮助征求解决方案?
非常感谢,
戴夫我是这样将G5根证书导入openssl的:
- 从Verisign (Symantec)这里获取G5根证书(以PEM格式获取,以。PEM扩展名保存文件)
- 将文件放入openssl基本目录(在您的服务器上应该是"
/usr/lib/ssl
",但您可以通过运行openssl version -d
来检查基本目录) -
运行命令安装证书
openssl verify -CApath <ssl-base-dir>certs server-certificate-file
(将
<ssl-base-dir>
替换为openssl基本目录,并将server-certificate-file
替换为。pem文件,命令将类似于openssl verify -CApath /usr/lib/ssl/certs G5.pem
) -
响应将是
G5.pem: OK
用于安装 -
用连接命令再试一次
openssl s_client -connect api-3t.sandbox.paypal.com:443 -showcerts -CApath /usr/lib/ssl/certs/
您将在响应的末尾看到
Verify return code: 0 (ok)
我下载了VeriSign class 3公共主证书颁发机构- G5。将Pem证书文件拷贝到本地目录,并执行如下命令:
openssl s_client -connect api-3t.sandbox.paypal.com:443 -showcerts
-CAfile "sslVeriSign Class 3 Public Primary Certification Authority - G5.pem"
Openssl返回一个成功的结果(截断):
Server certificate
subject=/C=US/ST=California/L=San Jose/O=PayPal, Inc./OU=PayPal Production/CN=api-3t.sandbox.paypal.com
issuer=/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)10/CN=VeriSign Class 3 Secure Server CA - G3
---
No client certificate CA names sent
---
SSL handshake has read 3379 bytes and written 344 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : ECDHE-RSA-AES256-SHA
Session-ID: 9E01CD86FA9CEB77AD505F17E34C0B9B8A233BD98E30D705F2946F88596F077D
Session-ID-ctx:
Master-Key: 7AC616B7499ED70B6D75FAD3308C332A48B85987685A514365B7507297A3C6A70CD6E7503CE27A9A157045531B54149F
Key-Arg : None
PSK identity: None
PSK identity hint: None
Start Time: 1445867355
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
请注意,我使用了-CAfile选项来直接引用CA根证书。