0
使用此PHP腳本如何檢查主機名稱是否與PHP中的SSL證書中的通用名稱匹配?
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_URL, 'https://sf.net/');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
if (!curl_exec($ch)) {
echo "Error #" . curl_errno($ch) . ": " . curl_error($ch);
}
?>
我沒有錯誤。這似乎是好的。
預期結果應該顯示一條錯誤消息,指出證書名稱sourceforge.net
與期望的sf.net
不符。你怎麼看?
謝謝你的解釋。你的意思是我必須設置'CURLOPT_SSL_VERIFYPEER'爲TRUE,'CURLOPT_SSL_VERIFYHOST'爲0? – LeMoussel
@LeMoussel:爲了正確驗證,您應該保留系統默認的[verifyypeer true](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html)和[verifyhost 2 ](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYHOST.html) –