file_get_contents 获取 https 页面,报 failed to open stream 错误
问题是在网站更换了域名和 ssl 证书后引起,用原来测试的域名和证书 file_get_contents 是没问题的。测试的证书是阿里云免费的 dv 证书,正式的证书是阿里付费的 Symantec EV 证书。
服务器环境是 apache,https 页面可以正常访问,file_get_contents 其他 https 页面没问题,比如 https://www.baidu.com/ 可以正常获取到,测试域名解析还在,获取测试域名的地址也能获取到,但同一地址修改成正式域名后就报错了。
因为代码及服务器配置没动,所以基本确定是更换了 EV 证书引起的,不知道还需要什么配置?
正式域名申请了个免费的dv证书,更新后问题还存在,说明跟证书没关系。
可能某个地方权限有问题
$ch = curl_init();
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_URL, 'https://www.zhimm.com' );
curl_setopt( $ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36' );
$data = curl_exec( $ch );
curl_close( $ch );
echo $data;
使用curl也是输出空白,url换成https://www.baidu.com就没问题
@Tking
可以参考如下
--
最后祝成功!!