簡體   English   中英

如何在我的OS / PHP上啟用CURLOPT_SSL_VERIFYHOST = 2支持

[英]How to enable CURLOPT_SSL_VERIFYHOST = 2 support on my OS/PHP

我一直在本地開發一個站點,該站點可對登錄進行身份驗證。 步驟之一是要求我向https資源發出curl請求以獲取訪問令牌。

curl配置的一部分是:

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);                                         
    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

如您所見,我注釋掉了CURLOPT_SSL_VERIFYHOST選項。 我在php.net和各種博客/ stackoverflow( 禁用CURLOPT_SSL_VERIFYHOST(libcurl / openssl)的安全后果 )上閱讀了這些選項的含義。

在我的開發機器上, CURLOPT_SSL_VERIFYHOST 2正常運行。 我只是使用ubuntu 12.04 php5軟件包和php5-curl中提供的香草php安裝。

在生產環境(機架空間雲站點)上, CURLOPT_SSL_VERIFYHOST 2無法正常工作,這就是為什么我將其更改為false以驗證這是問題所在。 好像我沒有在我的本地主機上顯式做任何事情來啟用它,所以我不知道是什么指令/配置選項來控制它。

我的意思是“不工作”是對生產的卷曲調用返回一個http_code0VERIFYHOST設置為2 當我將其設置為FALSE它將返回狀態碼200

我的問題是:

如何在Linux SSL_VERIFYHOST上啟用SSL_VERIFYHOST

任何幫助將不勝感激。 謝謝。

對於“ 2”,必須確保SSL證書中的公用名與使用的主機名匹配。 這是默認設置,並且應該簡單明了,只要針對使用它的主機名(通用名)正確創建了SSL證書即可。

從PHP curl_setopt手冊中:

1檢查SSL對等證書中是否存在公用名。 2檢查公用名是否存在,並驗證其是否與提供的主機名匹配。 在生產環境中,此選項的值應保持為2(默認值)。

手動輸入curl_setopt

暫無
暫無

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

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