【求助】PHP,curl请求https协议url失败,返回502状态码?

46 阅读1分钟

<?php $url = 'https://www.baidu.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); ?>

请求http链接可以正常得到结果。如果换成https协议链接的话,nginx返回“HTTP 502 - Bad Gateway 没有响应”。请大神指导,这是为什么,怎么解决这个问题。

  • 开发环境:PHP study8.1.1.3,window,php7.0.9,nginx1.15.11

  • 以www.baidu.com举例,如图所示,请求http协议没问题,请求https协议报错

https协议: 037d51f0a2364ea1764708db90afd6b1_215526c00a04nn7ewekii3.png

http协议: 8bcea05410026a2f6e19dcf10d2e2efa_215439do055n5vvr3s3hf0.png

  • 尝试过以下方案,还是没有解决
  1. php.ini配置了最新下载的证书,代码里指向最新下的证书。
  2. 代码里设置跳过ssl。