PHP cURL错误60

时间:2017-07-27 07:29:45

标签: php ssl curl

是的我已经看到了很多关于此的问题,事实上我已经解决了这个问题,并在去年解决了这个问题。这次由于某种原因,解决方案(添加https://curl.haxx.se/ca/cacert.pem)无效。

服务器(我的公司)是一个node.js应用程序,我注册了服务器私钥,服务器crt,以及根证书和中间证书(我认为?),名称是DigiCertCA.crtTrustedRoot.crt。客户端是一个进行cURL连接的PHP脚本。将cacert.pem添加到php.ini后,它一直运行良好。最近我的公司更新了SSL证书,大约在同一时间,客户端PHP脚本(另一家公司)被从dev转移到生产服务器。然后SSL再次破裂。

使用chrome(安全https,未破坏)打开网站时看起来很好。这是PHP脚本,简化为演示问题。我尝试通过php.ini和curl_setopt添加cacert.pem,但没有成功。这在我的本地开发机器上运行,Windows 10使用xampp 5.6.3

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://example.com'); 
curl_setopt($ch, CURLOPT_CAINFO, 'D:/xampp/php/extras/ssl/cacert.pem');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
$content = trim(curl_exec($ch));
if (curl_errno($ch)) {
    $content = 'ERROR -> ' . curl_errno($ch) . ': ' . curl_error($ch);
} 
curl_close($ch);
print $content;

错误讯息:

60: SSL certificate problem: unable to get local issuer certificate

其他信息:

生产PHP脚本的错误消息实际上是不同的,它说

curl: (60) Peer's Certificate issuer is not recognized.

我还尝试使用curl使用我公司的证书访问其他子域名,并且他们都提供相同的错误60.访问https://twitter.com时可以

1 个答案:

答案 0 :(得分:1)

我认为你有一个错误

true

你保留了这个X[1, 100, 5],所以这似乎是问题