[PHP] PHP cURL https SSL certi

发布于:2017年10月27日 已被阅读

PHP通过cURL访问https时出现SSL certificate problem: unable to get local issuer certificate的解决方法:只要设置以下两个属性就可以解决。
将 CURLOPT_SSL_VERIFYPEER 设置为 false,
将 CURLOPT_SSL_VERIFYHOST 设置为 false.
代码如下:
<?php
$cURL = curl_init();
$url  = 'http://www.51-n.com/';
curl_setopt_array(
        $cURL,
        array(
                CURLOPT_URL => $url,        
                CURLOPT_REFERER => $url,
                CURLOPT_AUTOREFERER => true,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_SSL_VERIFYPEER => false,
                CURLOPT_SSL_VERIFYHOST => false,
                CURLOPT_CONNECTTIMEOUT => 1,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36'
        )
);
//其他代码...
?>


        $ch = curl_init($url);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($ch, CURLOPT_HEADER, false); // 返回header信息

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false);

        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , false);

        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);

        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        //curl_setopt($ch, CURLOPT_REFERER, 'http://www.baidu.com');

        $result = curl_exec($ch);

        // if($result == FALSE ){

        //     exit;

        //  echo "CURL Error:".curl_error($ch);

        //  }

        curl_close($ch);

        return $result;