
Estoy usando Ubuntu 14.04. Cuando uso curl, aparece el siguiente error:
curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath:
Por lo que deduzco al buscar en Google, la ubicación del archivo CA que está buscando no es correcta para Ubuntu (y no existe en mi computadora), /etc/ssl/certs/ca-certificates.crt
es la ubicación adecuada.
La mayoría de las soluciones implicaron configurar la variable de entorno CURL_CA_BUNDLE
en la ubicación adecuada o agregarla cacert=/etc/ssl/certs/ca-certificates.crt
al .curlrc
archivo (recién creado) en mi directorio de inicio. Probé ambos y ninguno solucionó completamente el problema. curl está encontrando esta ubicación, pero todavía no funciona y aparece el error:
curl: (60) SSL certificate problem: self signed certificate in certificate chain
También intenté desinstalar y reinstalar curl en Ubuntu y actualizar mis certificados de CA con $ sudo update-ca-certificates --fresh
los que actualicé los certificados, pero aún así no desaparecí el error 60.
No tengo mucho conocimiento sobre los certificados de CA y dudo que haya agregado deliberadamente algún certificado autofirmado en el pasado. Quizás por accidente, no lo sé.
¿Alguien sabe cómo arreglar esto? ¿Hay alguna manera de empezar de nuevo con todos mis certificados? ¿O alguien sabe siquiera cómo puedo averiguar dónde está este certificado autofirmado y luego cómo eliminarlo?
PD: No quiero usar el indicador -k (también conocido como --insecure). Quiero que esto funcione de forma segura.
Respuesta1
Después de investigar y trabajar en esto durante los últimos días, logré que funcionara y la respuesta terminó siendo bastante simple.
Necesitaba configurar capath=/etc/ssl/certs/
mi .curlrc
archivo.
Esto hizo que curl funcionara en la línea de comando. Para que curl funcione aún más en R (donde encontré el problema por primera vez), también necesitaba tenerlo cacert=/etc/ssl/certs/ca-certificates.crt
en mi .curlrc
archivo como lo intenté antes; de lo contrario, seguía buscando/etc/pki/tls/certs/ca-bundle.crt
Todavía no tengo idea de por qué aparecía el error sobre los certificados autofirmados.
Según otros hallazgos aleatorios, también descargué un certificado del sitio web de Curl con:
sudo wget https://curl.se/ca/cacert.pem
en el mismo certs
directorio. Haber cafile
señalado esto también funcionó. Al final lo volví a poner ca-certificates.crt
y sigue funcionando.
No entiendo exactamente por qué funcionó esto o qué está pasando, pero se resolvió.
Respuesta2
cafileLa clave no funciona para mí (curl 7.45.0), pero cacert (de la opción --cacert) sí. Mi.curlrcarchivo:
capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt
Respuesta3
Después de investigar varias veces, logré que funcionara y la respuesta terminó siendo bastante simple.
Abra terminal ctrl++ y cambie el directorio de trabajo alt:t
cd /etc/ssl/certs/
Descargue el archivo pem en elcertificadoscarpeta
sudo wget https://curl.se/ca/cacert.pem
Ahora abre el archivo.curlrc
nano ~/.curlrc
Agregue las siguientes líneas en el archivo abierto.
capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt
Ahora guarde el archivo y haga sus cosas usando el comando curl.
NÓTESE BIENAquí usé nano editor, pero puedes usar cualquier editor.
Respuesta4
Nos enfrentamos al mismo problema con uno de nuestros programas C++ en Ubuntu 14.04.5. El .curlrc
método no estaba surtiendo efecto.
Esto se resolvió descargando el ca-certificates.crt
directorio /etc/ssl/certs/ca-certificates.crt
y creando un enlace simbólico ca-bundle.crt
en /etc/pki/tls/certs/
él.
¡Espero que esto ayude!