Cuando intento usar Curl en Windows, para recuperar una https
url, aparece el temido "error de conexión (60)".
El mensaje de error exacto es:
curl: (60) Problema con el certificado SSL, verifique que el certificado de CA esté bien. Detalles:
error: 14090086: rutinas SSL: SSL3_GET_SERVER_CERTIFICATE: verificación del certificado falló
Más detalles aquí: http://curl.haxx.se/docs/sslcerts.html
¿Cómo resolver esto?
Respuestas:
No sé por qué, pero no encontré toda esta información en un solo lugar.
Descargue la versión compatible con SSL de Curl o cree la versión compatible con SSL usted mismo.
Desde http://curl.haxx.se/docs/caextract.html , descargue el archivo cacert.pem.
Coloque el archivo curl.exe y .pem en el mismo directorio.
Cambie el nombre del
cacert.pem
archivo acurl-ca-bundle.crt
Vuelva a ejecutar curl.exe!
EDITAR:
Hay otras formas de resolver el problema. Esta forma particular se basa en un concierto producido por el creador de Curl. Es posible que eso no sea lo que desea, y en particular, puede que no funcione para los casos en que tenga una autoridad de certificación poco conocida (como una autoridad conocida solo por su empresa) para el certificado utilizado por el sitio SSL . En ese caso, querrás generar tu propio
curl-ca-bundle.crt
archivo. Puede usar certreq.exe y openssl.exe para exportar dicho certificado de la tienda IE / Windows y luego convertirlo a formato pem, respectivamente.fuente
curl
marcadoWinSSL
en Windows 7. De acuerdo con el enlace de documentación, las versiones así marcadas deberían funcionar usando los certificados del sistema. Sin embargo, recibí el error hasta que seguí su solución.set CURL_CA_BUNDLE=<path to crt>
. Asegúrese de que el formato del archivo sea el adecuado. Este método funcionará incluso si tiene variascurl
instalaciones, por ejemplo, git, vagabundo ...He creado un script de PowerShell que es capaz de escribir el
ca-cert.crt
archivo en función de los certificados de CA que están instalados en su tienda de certificación de Windows (CurrentUser o LocalMachine). Ejecute el script así:Esto creará el
curl-ca-cert.crt
archivo que debería almacenarse en el mismo directoriocurl.exe
y debería poder validar los mismos sitios que pueda en sus aplicaciones de Windows (tenga en cuenta que este archivo también puede ser consumido porgit
).El script "oficial" se puede encontrar en GitHub , pero la versión inicial se enumera aquí como referencia:
fuente
En realidad tuvimos el mismo problema con Typheous / Ruby. La solución fue descargar el cacert.pem y guardarlo en C: \ Windows \ System32 (o donde sea que esté su Windows). Después de eso, establecemos una variable de entorno global como la descrita aquí, donde debe estar
CURL_CA_BUNDLE
el " Nombre de la variable" y el "Valor de la variable" la ruta al archivo%SystemRoot%\System32\cacert.pem
.Al comenzar una nueva sesión de CMD, ahora puede usar Typheous / Libcurl para autenticar las conexiones SSL. He intentado esto con éxito con Windows 8.1.
fuente