Errnoerror:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

今天在curl 请求https接口时,遇到了问题,返回结果false。

// 查看错误信息
echo curl_errno($ch);

错误提示:Errnoerror:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

尝试解决办法1:忽略SSL证书检查

// 忽略SSL证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

尝试解决办法2:设定SSL版本,1-3切换

// 设定SSL版本,1-3切换
curl_setopt($ch, CURLOPT_SSLVERSION, 3);

尝试之后发现错误依旧哈,继续查询。。。

发现当通过错误的端口(例如80)请求HTTPS资源时,也将收到此类错误消息。因此,请确保在“请求”选项中指定了正确的端口443。

// 请求链接
curl_setopt($ch, CURLOPT_URL, $url);
// 请求端口,SSL为443
curl_setopt($ch, CURLOPT_PORT, $port);

当发现这个解释时,回头一检查,晕死,这种错误也能出现,压根没留意呀,哈哈还真是没谁了。

原文地址:https://www.cnblogs.com/yycode/p/13275125.html