Me encuentro con problemas en los que el paquete de CA que se ha incluido con mi versión de cURL no está actualizado.
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
Leer la documentación no me ayudó porque no entendía lo que tenía que hacer o cómo hacerlo. Estoy ejecutando RedHat y necesito actualizar el paquete de CA. ¿Qué debo hacer para actualizar mi paquete de CA en RedHat?
fuente
La forma recomendada de hacerlo en los sistemas RHEL 6+ es usar la herramienta update-ca-trust , que ahora está instalada de manera predeterminada.
Por lo tanto, solo necesita soltar su archivo crt en
/etc/pki/ca-trust/source/anchors/
y ejecutar la herramienta. Trabajo hecho. Es seguro hacerlo, no necesita hacer ninguna copia de seguridad. La página completa del manual se puede encontrar aquí: https://www.mankier.com/8/update-ca-trustfuente
RHEL proporciona los certificados de CA de Mozilla como parte del
ca-certificates
paquete (instale estoyum
si aún no está instalado). Para decirle a cURL que use estos, use el--cacert
parámetro de esta manera.fuente
yum install ca-certificates
y conseguíNo package ca-certificates available
ca-certificates.noarch 0:2014.1.98-70.0.el7_0
, desafortunadamente no resolvió mi problema, pero pensé que agregaría esta información.Probablemente depende de qué versión de Redhat. Puede encontrar qué paquete realmente actualiza el archivo haciendo:
Mi resultado mostró que openssl-0.9.8e-12.el5 necesita ser actualizado.
Si no hay certificados actualizados en su distribución, debe actualizarlos manualmente, según la respuesta de Nada.
fuente
Desde el comentario de Dan Pritts, Red Hat ha estado actualizando los paquetes de certificados para las versiones compatibles de RHEL con más frecuencia; Puede ver esto con bastante facilidad en el registro de cambios del paquete. Los certificados de RHEL 6 se actualizaron dos veces en 2013 y dos veces en 2014.
Todas las distribuciones RHEL y relacionadas / clonadas / derivadas proporcionan un archivo de paquete en
/etc/pki/tls/certs/ca-bundle.crt
, y el mismo archivo en/etc/pki/tls/cert.pem
(en las distribuciones más antiguascert.pem
es un enlace simbólico aca-bundle.crt
; en las distribuciones más nuevas ambos son enlaces simbólicos a un archivo de salida porupdate-ca-trust
).En RHEL 6 y versiones posteriores, el paquete forma parte del paquete 'ca-certificados'. En RHEL 5 y versiones anteriores, forma parte del paquete 'openssl'.
En RHEL 6 con la actualización https://rhn.redhat.com/errata/RHEA-2013-1596.html y cualquier RHEL más reciente, el sistema de 'certificados de sistema compartido' está disponible (debe ejecutarlo
update-ca-trust enable
para habilitarlo) y el mejor El método es el dado por lzap. Una ventaja de este sistema es que funciona para aplicaciones basadas en NSS y GnuTLS, así como para aplicaciones basadas en OpenSSL. Tenga en cuenta que también puede desconfiar de un certificado colocándolo en el directorio/etc/pki/ca-trust/source/blacklist/
.En RHEL 5 y versiones anteriores (y RHEL 6 si no desea utilizar el nuevo sistema) puede confiar en CA adicionales colocando sus archivos de certificado formateados PEM con la extensión
.pem
en / etc / pki / tls / certs y ejecutándosec_rehash
(también puede necesitaryum install /usr/bin/c_rehash
) Esto solo funcionará para el software que utiliza los almacenes de confianza predeterminados de OpenSSL. Esto es mejor que editar o reemplazar el archivo de paquete porque le permite continuar recibiendo actualizaciones oficiales del archivo de paquete.El software que usa una de las ubicaciones de los archivos de paquete directamente (en lugar de pedirle a OpenSSL que use los almacenes de confianza predeterminados del sistema) no respetará el cambio; Si tiene dicho software, está atascado editando el archivo del paquete (o mejorando el software). El software que no utiliza OpenSSL en absoluto no respetará el certificado agregado.
fuente
Solo tenía que hacer esto en una vieja caja RHEL5. Llegué al catch 22 ... curl rechazaría la descarga de https porque los certificados en la máquina eran demasiado viejos para validar los certificados curl.haxx.se.
Usé la opción --seguro de curl para forzar la descarga de https. (Sí, lo sé ... es "inseguro").
fuente
Para RHEL 6 , pude solucionar esto actualizando y reinstalando el último paquete de certificados de CA de Red Hat:
(En mi caso, esto fue suficiente para permitir que se confiara en el nuevo certificado de firma "Let's Encrypt Authority X3").
fuente