我对PHP curl有极大的困难。我试图通过PHP curl打开一个站点https://www.novaprostaffing.com/np/index.jsp,但它不断产生以下错误:"与www.novaprostaffing.com相关的未知SSL协议错误"
我的功能如下:
function getUrl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$buffer = curl_exec($ch);
if (!$buffer)
{
echo "cURL error number:" .curl_errno($ch);
echo " and url is $url and cURL error:" . curl_error($ch);
}
curl_close($ch);
return $buffer;
}
我尝试过多种修复措施,包括:
以上都没有奏效。如果您有任何想法如何解决这个问题,将非常感谢!
答案 0 :(得分:2)
尝试设置cURL选项 CURLOPT_SSLVERSION 。我前一段时间遇到同样的问题,这对我来说很有用:)
curl_setopt($ch, CURLOPT_SSLVERSION, 3); // 1, 2 or 3
答案 1 :(得分:0)
您是否尝试过其他https网址,看看是否有效? 以下是3个常见原因
答案 2 :(得分:0)
服务器只说TLS 1.0并尝试连接SSL 2.0或SSL 3.0将导致您看到的错误。这意味着将版本设置为3与此服务器完全错误。除此之外,证书链不完整。服务器仅提供叶证书,而不是中间证书,直到受信任的根。这将导致验证失败。