我在win server 2012 R2上有最新的xampp,并已成功为我的域安装了ssl证书,并且可以从外部访问(我的网站:https://www.n-aos.com/)。网站服务还好!
我在这里使用官方的paypal php ipn代码:https://github.com/paypal/ipn-code-samples/blob/master/paypal_ipn.php#L58-L59并标记了无效的问题,第58和59行。
如果我将CURLOPT_SSL_VERIFYPEER
和CURLOPT_SSL_VERIFYHOST
设置为 0 ,那么该服务可以正常运行,但我不想在没有验证的情况下工作...
此外,我确实尝试从(http://curl.haxx.se/docs/caextract.html)下载cabundle证书并使用未注释的行来使用该证书,但错误与没有第79和80行的错误相同
调试错误日志只有这一行:
[2015-01-23 10:36 Europe/Zagreb] Can't connect to PayPal to validate IPN message: SSL certificate problem: unable to get local issuer certificate
如果你能想到我能做的事,我会非常感激。顺便说一句,这个相同的ipn check代码安静确实工作了几个月,当它从linux盒子(一些debian发行版)托管时,如果有帮助的话。
thx,kreso
答案 0 :(得分:0)
好的,经过非常漫长而彻底的测试,并试图让PayPal IPN工作,我的同事,发现了疾病是什么,所以我会在这里张贴给别人穿我的鞋子睡个好觉: )
我们的服务器ipn地址是https,需要执行此步骤。
与paypal交谈的内部php文件中添加以下行:
curl_setopt($ch, CURLOPT_SSLCERT, 'c:/path/some.crt');
curl_setopt($ch, CURLOPT_SSLKEY, 'c:/path/some.key');
curl_setopt($ch, CURLOPT_CAINFO, 'c:/path/cabundle.crt');
第一行和第二行的添加域名的证书文件的完整路径,该文件正在向PayPal发送。
对于第三行,这是一个棘手的部分,从此页面添加第二个旧证书
http://curl.haxx.se/docs/caextract.html
具有1024bit长的verisign密钥的那个! :)
奇怪的是,一些ssl网站上的测试确实通过了新的cabundle,比如google,银行网站但paypal失败了......所以这让我们感到困惑
github上cert文件的直接链接位于:github link from 13.08.2015
欢呼声,