有万维景盛SSL用户遇到这样的问题,以前没有使用SSL证书,通过HTTP明文传输数据,curl请求一切正常,切换为https以后,遇到500错误,直接访问进行curl请求的页面,发现是空白页。万维景盛工程师为您分析这一问题。 这是由于http的curl请求与https的curl请求参数不同造成的。 常规curl请求: - $url = 'https://www.oeecc.com';
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_HEADER, 1);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- $data = curl_exec($curl);
- curl_close($curl);
- var_dump($data);
复制代码https的curl请求 - $url = 'https://www.oeecc.com';
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_HEADER, 1);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//这个是重点。
- $data = curl_exec($curl);
- curl_close($curl);
- var_dump($data);
复制代码当请求https的数据时,会要求证书,这时候,加上下面这两个参数,规避ssl的证书检查 - // https请求 不验证证书和hosts
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
复制代码目前,百度、谷歌及各大浏览器全面推行https普及,如果您的网站还没有切换为https,那么要抓紧了。chrome等浏览器已经将所有http://传输的网站标记为不安全
|