2013-06-21 39 views
0

我正在调试某人在使用PHP插件访问支付网关时遇到的问题。点击Checkout按钮后,他能够避免404错误的唯一方法是将CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST设置为0.我知道这是不好的,但有人知道为什么这可能是?这似乎是不信任的支付网站的SSL证书......这可能只是他的服务器不信任某些SSL证书的问题?当检查被打开时,他从curl_exec()函数获得的响应只是false。绕过SSL检查

编辑:所以,我已经看到了多个解决方案,说获得证书文件后,类似这样的东西添加到我的curlopt行:

curl_setopt($ CH,CURLOPT_CAINFO,GETCWD()“/ cacerts中/ certificate.cert“);

但是如果我正在处理一堆有这个问题的独立客户呢?这条道路不适合每个人。我可以把什么,而是将适用于每个人?

如果我不能提出一个总体路线,那么我会在哪里告诉该人员放置他们的证书文件?这必须由他们的网络托管服务来完成,对吧?

+0

http://www.php.net/manual/en/function.curl-error.php – CBroe

+0

这里是它返回的错误: 卷曲错误:错误设置证书验证地点: 凭证档案错误:在/ etc/PKI /tls/certs/ca-bundle.crt CApath:none –

回答

0

这里是一个很好的回答你的问题: Security consequences of disabling CURLOPT_SSL_VERIFYHOST (libcurl/openssl)

我建议分析由支付网站颁发的证书..
在URL中使用PHP的插件使用的恰恰是在通用名指定的相同证书领域?

如果确认该证书提供它的确定,以及值得信赖的,你可以设置CURLOPT_CAINFO选择信任此证书,避免错误: curl_setopt($ CH,CURLOPT_CAINFO,“C:\路径\到\ curl- CA-bundle.crt');

+0

第三个参数是公司证书的路径吗? –

+0

是的,但它是一个本地路径,所以你必须先将它下载到php服务器上的某个地方 – clagio

+0

/etc/pki/tls/certs/ca-bundle.crt会在哪里? –

0

Chech your SSL Certificate here:http://www.digicert.com/help/ 我有类似的问题,因为证书并没有很好的链接。

+0

它将所有检查该网站...我只是想弄清楚如何为CURLOPT_CAINFO设置该证书:P –

相关问题