HTTPS y SSL3_GET_SERVER_CERTIFICATE: la verificación del certificado falló, CA está bien
Estoy usando XAMPP para el desarrollo. Recientemente actualicé mi instalación de xampp de una versión anterior a 1.7.3.
Ahora, cuando hago curl en sitios habilitados para HTTPS, aparece la siguiente excepción
Error grave: excepción no detectada 'RequestCore_Exception' con el mensaje 'recurso cURL: ID de recurso n.º 55; Error de cURL: problema con el certificado SSL, verifique que el certificado de CA esté bien. Detalles: error: 14090086: rutinas SSL: SSL3_GET_SERVER_CERTIFICATE: verificación de certificado fallida (60)'
Todos sugieren usar algunas opciones de curl específicas del código PHP para solucionar este problema. Creo que este no debería ser el camino. Porque no tuve ningún problema con mi versión anterior de XAMPP y ocurrió solo después de instalar la nueva versión.
Necesito ayuda para descubrir qué configuraciones cambian en mi instalación de PHP, Apache, etc. puede solucionar este problema.
Es un problema bastante común en Windows. Sólo necesita configurarlo cacert.pem
en curl.cainfo
.
Desde PHP 5.3.7 puedes hacer:
- descargue https://curl.se/ca/cacert.pem y guárdelo en algún lugar.
- actualizar
php.ini
- agregar curl.cainfo = "PATH_TO/cacert.pem"
De lo contrario, deberá hacer lo siguiente para cada recurso de cURL:
curl_setopt ($ch, CURLOPT_CAINFO, "PATH_TO/cacert.pem");
curl
solía incluir una lista de autoridades certificadoras (CA) aceptadas, pero ya no incluye NINGÚN certificado de CA desde 7.18.1 en adelante. Entonces, de forma predeterminada, rechazará todos los certificados TLS/SSL como no verificables.
Tendrá que obtener el certificado raíz de su CA y apuntarlo. Más detalles en los detalles de curl sobre verificación de certificados TLS/SSL .