我正在调试有人在使用PHP插件访问支付网关时遇到的问题。单击Checkout按钮后,他能够避免404错误的唯一方法是将CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST设置为0.我知道这很糟糕,但有谁知道为什么会这样?它似乎不信任支付网站的SSL证书......这可能是他的服务器不信任某些SSL证书的问题吗?当打开检查时,他从curl_exec()函数获得的响应只是假。
编辑:所以我看到多个解决方案,在获取证书文件后,在我的curlopt行中添加类似的内容:
curl_setopt($ ch,CURLOPT_CAINFO,getcwd()。“/ CAcerts / certert.cert”);
但是,如果我正在与一群有这个问题的独立客户打交道呢?那条路对每个人都不起作用。我能用什么来代替每个人呢?
如果我不能放一条通用线,那么我会告诉该人放置他们的证书文件?这必须由他们的网络托管服务完成,对吗?
答案 0 :(得分:0)
这是您的问题的一个很好的答案: Security consequences of disabling CURLOPT_SSL_VERIFYHOST (libcurl/openssl)
我建议分析付款网站发出的证书。
php插件使用的url与证书的通用名称字段中指定的完全相同?
如果您确定证书提供了它并且可信,您可以设置CURLOPT_CAINFO选项以信任此证书并避免错误: curl_setopt($ ch,CURLOPT_CAINFO,'C:\ path \ to \ curl-ca-bundle.crt');
答案 1 :(得分:0)
在此处查看您的SSL证书:http://www.digicert.com/help/ 我有一个类似的问题,因为证书没有很好的链接。