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) –