簡體   English   中英

證書 CA 捆綁文件:PEM - PHP/cURL - 本地安裝..?

[英]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_CAINFOcacert.pem ,它可以工作,我得到:

PayPal_Connection_OK

當我不使用CURLOPT_CAINFO我收到此錯誤:

SSL 證書問題:無法獲取本地頒發者證書

我試過這個:

  1. 毫米波
  2. 文件 > 添加/刪除管理單元
  3. 證書(本地計算機)
  4. 受信任的根證書頒發機構 > 證書
  5. 所有任務 > 導入
  6. 選擇cacert.pem
  7. 消息:“導入成功”

然而這並沒有什么區別,我仍然必須使用CURLOPT_CAINFO才能使其工作。

有什么方法可以在我們的 Windows Server 上安裝所有這些根證書,這樣我就不必在每次調用時都使用CURLOPT_CAINFOcacert.pem ..?

您可以利用 php.ini 設置 cacert.pem 所在位置的絕對路徑。

指令是curl.cainfo

設置它,或者至少讀取它的值並將您的文件放在正確的位置。

見: http : //php.net/manual/en/curl.configuration.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM