[英]Certificate CA bundle file: PEM - PHP/cURL - Local install..?
我正在使用 Windows Server 2008 R2(帶有 IIS)、PHP 5.6.0 和 cURL 7.36.0 來測試 PayPal 的 TLS 測試 URL:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://tlstest.paypal.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSLVERSION, 6); // CURL_SSLVERSION_TLSv1_2
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '\cacert.pem');
$result = curl_exec($ch);
curl_close($ch);
當我使用來自http://curl.haxx.se/docs/caextract.html 的CURLOPT_CAINFO
和cacert.pem
,它可以工作,我得到:
PayPal_Connection_OK
當我不使用CURLOPT_CAINFO
我收到此錯誤:
SSL 證書問題:無法獲取本地頒發者證書
我試過這個:
cacert.pem
然而這並沒有什么區別,我仍然必須使用CURLOPT_CAINFO
才能使其工作。
有什么方法可以在我們的 Windows Server 上安裝所有這些根證書,這樣我就不必在每次調用時都使用CURLOPT_CAINFO
和cacert.pem
..?
您可以利用 php.ini 設置 cacert.pem 所在位置的絕對路徑。
指令是curl.cainfo
設置它,或者至少讀取它的值並將您的文件放在正確的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.