47 votes

Comment mettre à jour le bundle CA cURL sur RedHat ?

Je rencontre des problèmes lorsque le paquet de CA qui a été fourni avec ma version de cURL est obsolète.

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

La lecture de la documentation ne m'a pas aidé car je ne comprenais pas ce que je devais faire ni comment le faire. J'utilise RedHat et je dois mettre à jour le bundle CA. Que dois-je faire pour mettre à jour mon bundle CA sur RedHat ?

57voto

Angzuril Points 8248

Pour RHEL 6 ou une version ultérieure vous devriez utiliser update-ca-trust comme le décrit lzap dans sa réponse ci-dessous.

--- Pour les anciennes versions de Fedora, CentOS, Redhat :

Curl utilise l'ensemble d'AC par défaut du système, stocké dans /etc/pki/tls/certs/ca-bundle.crt . Avant de le modifier, faites une copie de ce fichier afin de pouvoir rétablir la valeur par défaut du système si nécessaire. Vous pouvez simplement ajouter de nouveaux certificats d'autorité de certification à ce fichier ou remplacer l'ensemble des certificats.

Vous vous demandez également où obtenir les certificats ? Je (et d'autres) recommande curl.se/ca . En une ligne :

curl https://curl.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt

L'emplacement de Fedora Core 2 est /usr/share/ssl/certs/ca-bundle.crt .

49voto

lzap Points 2604

Sur les systèmes RHEL 6+, il est recommandé d'utiliser l'option update-ca-trust qui est désormais installé par défaut.

# cat /etc/pki/ca-trust/source/README 
This directory /etc/pki/ca-trust/source/ contains CA certificates and 
trust settings in the PEM file format. The trust settings found here will be
interpreted with a high priority - higher than the ones found in 
/usr/share/pki/ca-trust-source/.

=============================================================================
QUICK HELP: To add a certificate in the simple PEM or DER file formats to the
            list of CAs trusted on the system:

            Copy it to the
                    /etc/pki/ca-trust/source/anchors/
            subdirectory, and run the
                    update-ca-trust
            command.

            If your certificate is in the extended BEGIN TRUSTED file format,
            then place it into the main source/ directory instead.
=============================================================================

Please refer to the update-ca-trust(8) manual page for additional information

Par conséquent, il vous suffit de déposer votre fichier crt dans le répertoire /etc/pki/ca-trust/source/anchors/ et d'exécuter l'outil. Travail effectué. Cette opération est sans danger, vous n'avez pas besoin de faire des sauvegardes. La page de manuel complète se trouve ici : https://www.mankier.com/8/update-ca-trust

8voto

Cela dépend probablement de la version de Redhat. Vous pouvez trouver le paquet qui met à jour le fichier en faisant :

rpm -qf /etc/pki/tls/certs/ca-bundle.crt

Mon résultat montrait que openssl-0.9.8e-12.el5 doit être mis à jour.

S'il n'y a pas de certificats mis à jour dans votre distribution, vous devez les mettre à jour manuellement, comme indiqué dans la réponse de Nada.

7voto

Adam Williamson Points 396

Depuis le commentaire de Dan Pritts, Red Hat a mis à jour plus souvent les paquets de certificats pour les versions RHEL prises en charge ; vous pouvez le voir assez facilement dans le journal des modifications des paquets. Les certificats de RHEL 6 ont été mis à jour deux fois en 2013 et deux fois en 2014.

Toutes les distributions RHEL et apparentées / clonées / dérivées fournissent un fichier bundle à l'adresse suivante /etc/pki/tls/certs/ca-bundle.crt et le même fichier à l'adresse /etc/pki/tls/cert.pem (sur les distros plus anciennes cert.pem est un lien symbolique vers ca-bundle.crt ; sur les distros plus récentes, les deux sont des liens symboliques vers un fichier produit par update-ca-trust ).

Dans RHEL 6 et les versions plus récentes, le paquet fait partie du paquet "ca-certificates". Dans RHEL 5 et les versions antérieures, il fait partie du paquet "openssl".

Dans RHEL 6 avec la mise à jour https://rhn.redhat.com/errata/RHEA-2013-1596.html et toute version plus récente de RHEL, le système de "certificats de système partagés" est disponible (vous devez exécuter la commande update-ca-trust enable pour l'activer) et la meilleure méthode est celle donnée par lzap. L'avantage de ce système est qu'il fonctionne pour les applications basées sur NSS et GnuTLS ainsi que pour celles basées sur OpenSSL. Notez que vous pouvez également vous méfier d'un certificat en le plaçant dans le répertoire /etc/pki/ca-trust/source/blacklist/ .

Dans RHEL 5 et les versions antérieures (et RHEL 6 si vous ne souhaitez pas utiliser le nouveau système), vous pouvez faire confiance à des autorités de certification supplémentaires en plaçant leurs fichiers de certificats au format PEM. avec l'extension .pem dans /etc/pki/tls/certs et en exécutant c_rehash (peut également nécessiter yum install /usr/bin/c_rehash ). Cela ne fonctionnera que pour les logiciels qui utilisent les réserves de confiance par défaut d'OpenSSL. Cette méthode est préférable à la modification ou au remplacement du fichier d'ensemble, car elle vous permet de continuer à recevoir les mises à jour officielles du fichier d'ensemble.

Les logiciels qui utilisent directement l'un des emplacements du fichier bundle (plutôt que de demander à OpenSSL d'utiliser les réserves de confiance par défaut du système) ne respecteront pas le changement ; si vous avez un tel logiciel, vous devez éditer le fichier bundle (ou améliorer le logiciel). Les logiciels qui n'utilisent pas du tout OpenSSL ne respecteront pas le certificat ajouté.

6voto

mgorven Points 29736

RHEL fournit les certificats de l'autorité de certification de Mozilla dans le cadre du programme ca-certificates (à installer avec yum s'il n'est pas déjà installé). Pour indiquer à cURL de les utiliser, utilisez l'option --cacert comme suit.

curl --cacert /etc/ssl/certs/ca-bundle.crt https://google.com/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X