检查网站是HTTP还是HTTPS

时间:2016-09-26 19:38:02

标签: php http https

如何使用 HTTPS 检查网站是否安全,或使用 HTTP 检查不安全?

实际上,我的用户需要输入他们的网站: domain.com

我的系统需要 ping 此域并检查它是 HTTPS 还是 HTTP

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

function check_https($url){
$ch = curl_init ('https://'.$url);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, 'HEAD'); //its a  HEAD
curl_setopt ($ch, CURLOPT_NOBODY, true);          // no body

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true);  // in case of redirects
curl_setopt ($ch, CURLOPT_VERBOSE,        0); //turn on if debugging
curl_setopt ($ch, CURLOPT_HEADER,         1);     //head only wanted

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10);    // we dont want to wait forever

curl_exec ( $ch ) ;

$header = curl_getinfo($ch,CURLINFO_HTTP_CODE);
//var_dump ($header);

if($header===0){//no ssl
        return false;
}else{//maybe you want to check for 200
        return true;
}

}



var_dump(check_https("google.com"));

答案 1 :(得分:0)

使用卷曲功能,您可以检查:

  • 如果网站在端口80上谈论http
  • 如果网站在端口443上讨论https

但也许它的答案不一样:

  • 有些服务器回答" public"内容通过http和"私人"内容超过https
  • 某些服务器可能会回答完全不相关的内容,因为他们选择
  • 某些服务器可能错误地配置了端口443,并回答了网络服务器的默认网站(可能是任何内容,与请求无关,可能是错误的证书)

答案 2 :(得分:-1)

cURL http://和https://,返回您喜欢的那个。用户仍然可以在没有协议的情况下输入URL。