Por alguna razón, no puedo usar CURL con HTTPS. Todo funcionaba bien hasta que ejecuté la actualización de las bibliotecas de curl. Ahora estoy experimentando esta respuesta cuando intento realizar solicitudes CURL: Problema con el certificado de CA SSL (¿ruta? ¿Derechos de acceso?)
Siguiendo las sugerencias publicadas aquí sobre problemas relacionados, he intentado hacer lo siguiente:
Deshabilitar la verificación para el host y el par
curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
Habilite
CURLOPT_SSL_VERIFYPEER
y apunte a cacert.pem descargado de http://curl.haxx.se/docs/caextract.htmlcurl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
También intenté hacer lo mismo con PositiveSSL.ca-bundle, que se proporcionó como certificado de CA de paquete para el servidor al que estoy tratando de conectarme.
Edite la configuración de php ini con
curl.cainfo=cacert.pem
(archivo en el mismo directorio y accesible por apache)Cambiar nombre
/etc/pki/nssdb
a/etc/pki/nssdb.old
Desafortunadamente, ninguno de los anteriores puede resolver mi problema y constantemente recibo el mensaje Problema con el certificado SSL CA (¿ruta? ¿Derechos de acceso?).
Y no necesito esta verificación en primer lugar (soy consciente de los problemas de seguridad).
¿Alguien tiene alguna otra sugerencia?
ACTUALIZAR
Después de actualizar a las últimas bibliotecas y reiniciar todo el cuadro, ¡no solo Apache, que estaba haciendo, parece estar funcionando ahora nuevamente!
Respuestas:
Según la documentación: para verificar el certificado del host o del mismo nivel, debe especificar certificados alternativos con la
CURLOPT_CAINFO
opción o se puede especificar un directorio de certificados con laCURLOPT_CAPATH
opción.También mira
CURLOPT_SSL_VERIFYHOST:
fuente
SSL verification disabled
)Tuvimos el mismo problema en una máquina CentOS7. Desactivar el
VERIFYHOST
VERIFYPEER
no resolvió el problema, ya no teníamos el error cURL pero la respuesta aún no era válida. Hacer unwget
enlace al mismo enlace que el cURL también resultó en un error de certificado.-> Nuestra solución también fue reiniciar el VPS, esto lo solucionó y pudimos completar la solicitud nuevamente.
Para nosotros, esto parecía ser un problema de corrupción de la memoria. Reiniciar el VPS volvió a cargar la biblioteca en la memoria y ahora funciona. Entonces, si la solución anterior
@clover
no funciona, intente reiniciar su máquina.fuente