¿Cómo manejo los certificados usando cURL mientras intento acceder a una URL HTTPS?

Resuelto moorecats asked hace 14 años • 25 respuestas

Recibo el siguiente error al usar curl:

curl: (77) error al configurar las ubicaciones de verificación del certificado:
  Archivo CA: /etc/ssl/certs/ca-certificates.crt
  CApath: ninguno

¿Cómo configuro las ubicaciones de verificación de este certificado?

moorecats avatar Jul 02 '10 02:07 moorecats
Aceptado

También tenía instalada la versión más reciente de ca-certificates pero seguía apareciendo el error:

curl: (77) error setting certificate verify locations:
  CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none

El problema era que curl esperaba que el certificado estuviera en la ruta /etc/pki/tls/certs/ca-bundle.crtpero no podía encontrarlo porque estaba en la ruta /etc/ssl/certs/ca-certificates.crt.

Copiando mi certificado al destino esperado ejecutando

sudo cp /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt

trabajó para mi. Deberá crear carpetas para el destino de destino si no existen ejecutando

sudo mkdir -p /etc/pki/tls/certs

Si es necesario, modifique el comando anterior para que el nombre del archivo de destino coincida con la ruta esperada por curl, es decir, reemplácelo /etc/pki/tls/certs/ca-bundle.crtcon la ruta que sigue a "CAfile:" en su mensaje de error.

Scott Emmons avatar May 10 '2015 18:05 Scott Emmons

Este error está relacionado con un paquete faltante : ca-certificates. Instalarlo.

En Ubuntu Linux (y distribuciones similares):

# apt-get install ca-certificates

En CygWin a través de Apt-Cyg

# apt-cyg install ca-certificates

En Arch Linux (Raspberry Pi)

# pacman -S ca-certificates

La documentación dice:

Este paquete incluye archivos PEM de certificados CA para permitir que las aplicaciones basadas en SSL verifiquen la autenticidad de las conexiones SSL.

Como se ve en: Debian - Detalles del paquete ca-certificates en squeeze

Rubens Mariuzzo avatar Nov 15 '2012 15:11 Rubens Mariuzzo

Pon esto en tu.bashrc

# fix CURL certificates path
export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt

(ver comentario de Robert)

Yauhen Yakimovich avatar Jun 25 '2015 20:06 Yauhen Yakimovich

Crea un archivo ~/.curlrccon el siguiente contenido.

cacert=/etc/ssl/certs/ca-certificates.crt

como sigue

echo "cacert=/etc/ssl/certs/ca-certificates.crt" >> ~/.curlrc
prabeesh avatar Jul 15 '2015 08:07 prabeesh