Error de curl de PHP: “Error de protocolo SSL desconocido en conexión a …”

Tengo una dificultad extrema con PHP Curl. Estoy intentando abrir un sitio: https://www.novaprostaffing.com/np/index.jsp a través de PHP Curl, pero sigue produciendo el siguiente error: “Error de protocolo SSL desconocido en conexión con www.novaprostaffing.com”

Mi función es la siguiente:

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; 

}

He intentado varias correcciones, entre ellas:

  1. Forzar curl a la versión 3
  2. Estableciendo CURLOPT_SSL_VERIFYPEER & CURLOPT_SSL_VERIFYHOST en 0
  3. Comprobando para ver si estaba en curl 7.34. Me dijeron que había un error en esta versión, pero estoy en curl 7.19.1

Ninguno de los anteriores funcionó. Si tienes alguna idea de cómo solucionar esto, sería muy apreciado.

El servidor solo habla TLS 1.0 e intenta conectarse con SSL 2.0 o SSL 3.0 causará el error que ve. Esto significa que configurar la versión a 3 es exactamente lo incorrecto con este servidor. Aparte de eso, la cadena de certificados está incompleta. El servidor solo proporciona el certificado de hoja, no los certificados intermedios hasta la raíz de confianza. Esto hará que la verificación falle.

Intente configurar la opción cURL CURLOPT_SSLVERSION . Tuve el mismo problema hace un tiempo, esto me funcionó 🙂

 curl_setopt($ch, CURLOPT_SSLVERSION, 3); // 1, 2 or 3 

¿Intentó alguna otra URL https y ver si funcionó? Aquí hay 3 causas comunes

  1. El sitio de destino no le gusta el protocolo
  2. El sitio de destino no le gusta el cifrado
  3. La clave privada SSL ha caducado