是的我已經看到了很多關於這個問題,事實上我已經有這個問題,去年解決了它。這次出於某種原因解決方案(添加https://curl.haxx.se/ca/cacert.pem)不起作用。PHP cURL錯誤60
服務器(我公司)是一個node.js的應用程序,我註冊的服務器私鑰,服務器CRT,和根證書和中間證書(我想?),名稱是DigiCertCA.crt
和TrustedRoot.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來接受使用我公司的證書SS其他子域,他們都給予了同樣的錯誤60.雖然訪問https://twitter.com
是OK
[cURL錯誤60:SSL證書:無法獲取本地頒發者證書]的可能重複(https://stackoverflow.com/questions/29822686/curl-error-60-ssl-certificate-unable-to-get -local-issuer-certificate) –
'curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,false);'嘗試一次 –
@仍然死不是一個選項,我不想關閉驗證器,因爲這會使https無用 – iceman2992