0

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

编辑:所以我看到了多种解决方案,说在获得证书文件后向我的 curlopt 行添加类似的内容:

curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/CAcerts/certificate.cert");

但是,如果我正在与一群遇到此问题的单独客户打交道怎么办?这条路并不适合所有人。我可以用什么代替适用于每个人的内容?

如果我不能放一条通用线,那么我会告诉这个人把他们的证书文件放在哪里?这必须由他们的网络托管服务来完成,对吗?

4

2 回答 2

0

在此处检查您的 SSL 证书:http ://www.digicert.com/help/ 我遇到了类似的问题,因为证书没有很好地链接。

于 2013-06-21T12:34:37.313 回答
0

这是您问题的一个很好的答案: 禁用 CURLOPT_SSL_VERIFYHOST (libcurl/openssl) 的安全后果

我建议分析支付网站颁发的证书..
php插件使用的url与证书的通用名称字段中指定的完全相同?

如果您确定提供的证书正常且受信任,您可以设置 CURLOPT_CAINFO 选项以信任此证书并避免错误: curl_setopt($ch, CURLOPT_CAINFO, 'C:\path\to\curl-ca-bundle.crt ');

于 2013-06-21T12:31:51.837 回答