macos - sufrio - Cómo arreglar curl:(60) Certificado SSL: cadena de certificado inválida
la aplicacion sufrio un error interno al cargar las bibliotecas ssl (8)
Aparece el siguiente error al ejecutar curl https://npmjs.org/install.sh | sh
curl https://npmjs.org/install.sh | sh
en Mac OSX 10.9 (Mavericks):
install npm@latest
curl: (60) SSL certificate problem: Invalid certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html
¿Cómo puedo solucionar esto?
Después de actualizar a OS X 10.9.2, comencé a tener problemas de certificados SSL no válidos con Homebrew, Textmate, RVM y Github.
Cuando inicié una brew update
, recibía el siguiente error:
fatal: unable to access ''https://github.com/Homebrew/homebrew/'': SSL certificate problem: Invalid certificate chain
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master
Pude aliviar un poco el problema simplemente deshabilitando la verificación SSL en Git. Desde la consola (también conocida como shell o terminal):
git config --global http.sslVerify false
Estoy dispuesto a recomendar esto porque no cumple con el propósito de SSL, pero es el único consejo que he encontrado que funciona en un apuro.
Intenté rvm osx-ssl-certs update all
que Already are up to date.
indicaba que Already are up to date.
En Safari, visité https://github.com e intenté configurar el certificado de forma manual, pero Safari no presentó las opciones para confiar en el certificado.
En última instancia, tuve que restablecer Safari (Safari -> Restablecer Safari ... menú). Luego, visite github.com y seleccione el certificado, y "Confiar siempre". Esto se siente mal y borra el historial y las contraseñas almacenadas, pero resolvió mis problemas de verificación de SSL. Una victoria agridulce.
Después de intentar todas las soluciones anteriores para eliminar el error "curl: (60) Problema de certificado SSL: no se pudo obtener el certificado de emisor local", la solución que finalmente funcionó para mí en OSX 10.9 fue:
Localice la ubicación del archivo PEM del certificado de curl ''curl-config --ca'' -> /usr/local/etc/openssl/cert.pem
Use la ubicación de la carpeta para identificar el archivo PEM ''cd / usr / local / etc / openssl''
Cree una copia de seguridad del archivo cert.pem ''cp cert.pem cert_pem.bkup''
Descargue el archivo de certificado actualizado del sitio web de curl ''sudo wget http://curl.haxx.se/ca/cacert.pem ''
Copie el archivo PEM descargado para reemplazar el antiguo archivo PEM ''cp cacert.pem cert.pem''
Esta es una versión modificada de una solución publicada para corregir el mismo problema en Ubuntu que se encuentra aquí:
https://serverfault.com/questions/151157/ubuntu-10-04-curl-how-do-i-fix-update-the-ca-bundle
El problema es un certificado intermedio caducado que ya no se usa y debe eliminarse. Aquí hay una publicación de blog de Digicert explicando el problema y cómo resolverlo.
https://blog.digicert.com/expired-intermediate-certificate/
Estaba viendo el problema con Github no cargando a través de SSL tanto en Safari como en la línea de comando con git pull. Una vez que eliminé el viejo certificado vencido, todo estaba bien.
Empecé a ver este error después de instalar la última actualización de herramientas de línea de comandos (6.1) en Yosemite (10.10.1). En este caso particular, un reinicio del sistema solucionó el error (no reinicié desde la actualización).
Mencionando esto en caso de que alguien con el mismo problema se encuentre con esta página, como yo.
En primer lugar, debe tener cuidado con las URL que arrojan errores de SSL. Dicho esto, puede suprimir los errores de certificado en curl
con
curl -k https://insecure.url/content-i-really-really-trust
Otra causa de esto puede ser llaves duplicadas en su KeyChain. He visto este problema en dos Mac donde había duplicado "DigiCert High Assurance EV Root CA". Uno estaba en el llavero de inicio de sesión, el otro en el sistema de uno. La eliminación del certificado de la llave de acceso resolvió el problema.
Esto afectó al navegador Safari así como también a git en la línea de comando.
Usando el navegador Safari (no Chrome, Firefox u Opera) en Mac OS X 10.9 (Mavericks), visite https://registry.npmjs.org
Haga clic en el botón Mostrar certificado y luego marque la casilla de verificación etiquetada Confiar siempre. Luego haga clic en Continuar e ingrese su contraseña si es necesario.
Curl ahora debería funcionar con esa URL correctamente.
NOTA: Esta respuesta obviamente anula el propósito de SSL y debe usarse con moderación como último recurso.
Para aquellos que tienen problemas con scripts que descargan scripts que descargan scripts y desean una solución rápida, crean un archivo llamado ~/.curlrc
Con los contenidos
--insecure
Esto hará que Curl ignore los problemas del certificado SSL de manera predeterminada.
Asegúrese de eliminar el archivo cuando haya terminado.
ACTUALIZAR
12 días después recibí una notificación de un voto positivo sobre esta respuesta, que me hizo decir: "Hmmm, ¿seguí mi propio consejo, recuerde borrar esa .curlrc
?", Y descubrí que no. Así que eso realmente subraya lo fácil que es dejar su curl inseguro siguiendo este método.