GNU/Linux >> Tutoriels Linux >  >> Linux

Rendre les certificats CA disponibles pour les outils de ligne de commande Linux

Tous les navigateurs Web graphiques bien connus sont livrés avec une collection de certificats d'autorité de certification (CA) connus et fiables. Ainsi, lorsque vous visitez un site avec un certificat signé par l'un de ces certificats CA, le navigateur fait également confiance au site. Sinon, le navigateur passe par une série d'avertissements et d'options pour ajouter une exception après vous avoir encouragé à vérifier le certificat. Il existe également des options pour importer des certificats CA supplémentaires, tels que ceux documentés pour Firefox.

Utilisation de certificats CA avec des utilitaires de ligne de commande

Les certificats CA peuvent également être mis à disposition sur la ligne de commande. Un package inclus avec de nombreuses distributions, y compris Red Hat Enterprise Linux et Fedora, est appelé ca-certificates . Ce package est auto-décrit comme contenant "l'ensemble de certificats CA choisis par la Fondation Mozilla pour une utilisation avec l'ICP Internet". Ce package inclut les mêmes certificats CA bien connus que ceux trouvés dans Firefox. Il peut être utilisé par n'importe quelle application CLI qui regarde directement le /etc/pki/ca-trust/extracted répertoire, ainsi que les applications CLI qui chargent l'un des modules de confiance PKCS#11.

Utilitaires de ligne de commande tels que curl et wget peut utiliser ces certificats CA pour valider les certificats de serveur. De nombreux outils fournis avec Red Hat Enterprise Linux utilisent également ces certificats, y compris pour les interactions avec le support Red Hat (redhat-support-tool ), clusters Red Hat OpenShift (oc ) et les serveurs Red Hat Satellite 6 (hammer ). De nombreuses autres interactions avec les interfaces API du serveur utilisent également SSL/TLS et doivent valider les certificats proposés.

Avec les ca-certificates package installé, je peux utiliser curl pour afficher ou télécharger sans erreur le contenu d'une URL à partir d'un site à l'aide d'un certificat signé par une autorité de certification connue : 

$ curl https://access.redhat.com -o /tmp/sample

% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 103k 0 103k 0 0 339k 0 --:--:-- --:--:-- --:--:-- 337k

Si j'essaie d'accéder à un site interne qui possède un certificat auto-signé (ou un certificat signé par une autorité de certification qui n'est pas inclus avec les ca-certificates package) je reçois un message indiquant que la connexion a été refusée car le certificat n'est pas fiable :

$ curl https://somehost.internal-FQDN/

curl: (60) SSL certificate problem: self-signed certificate in certificate chain More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.

Certaines documentations encouragent une simple connexion non sécurisée pour ces sites internes et de confiance. Curl peut se connecter de manière non sécurisée avec le -k choix :

$ curl -k https://somehost.internal-FQDN/

Ou, si j'ai vérifié et téléchargé mon certificat CA interne, je peux dire curl pour vérifier le site avec ce certificat :

$ curl --cacert /path/to/cert-file https://somehost.internal-FQDN/

D'autres programmes sont similaires. Avec l'outil OpenShift et Origin de gestion des applications (oc ), une connexion à un cluster installé par défaut peut ne pas reconnaître le certificat CA auto-signé généré que le cluster utilise pour signer d'autres certificats internes. Ce problème inclut une connexion aux conteneurs CodeReady :

$ oc login -u developer -p developer https://api.crc.testing:6443

The server uses a certificate signed by an unknown authority.

You can bypass the certificate check, but any data you send to the server could be intercepted by others. Use insecure connections? (y/n):

Si vous avez une copie des certificats, spécifiez le certificat client avec le --client-certificate="" option, ou le certificat CA avec le --certificate-authority="" option, lors de l'utilisation de oc commande.

Serveur Red Hat Satellite et l'outil CLI hammer fonctionnent de la même manière, mais le certificat CA peut être spécifié sur la ligne de commande ou dans le ~/.hammer/cli_config.yml dossier. Le hammer La commande a également une option pour importer le certificat Satellite CA directement dans le .hammer de l'utilisateur répertoire de configuration :

$ hammer --fetch-ca-cert https://satellite.example.com

CA certificate for https://satellite.example.com was stored to 

..output omitted...

Cette commande ne rend le certificat disponible que pour l'utilisateur unique et doit être répétée pour chaque utilisateur du système. Pour rendre le certificat accessible à tous les utilisateurs d'un système, la sortie de la commande hammer suggère même d'utiliser ca-certificates .

Mettre à jour les ca-certificates pour valider les sites avec un certificat CA interne

Au lieu de spécifier manuellement le certificat CA avec chaque commande, nous pouvons ajouter nos certificats CA internes à la confiance CA fournie par ca-certificates emballer. Ce paquet fournit une structure de répertoire dans /etc/pki/ pour gérer les certificats et une commande update-ca-trust pour gérer la "configuration consolidée et dynamique des certificats AC et la confiance associée :"

$ ls /etc/pki/ca-trust/ 
ca-legacy.conf extracted README source

$ ls /etc/pki/ca-trust/source 
anchors blacklist ca-bundle.legacy.crt README 

Pour ajouter un certificat, téléchargez-le, placez-le dans le /etc/pki/ca-trust/source/anchors répertoire, puis exécutez la commande update-ca-trust . Vous devrez être root pour ces deux tâches :

$ sudo curl http://satellite.example.com/pub/katello-server-ca.crt -o /etc/pki/ca-trust/source/anchors/satellite-ca.crt
$ sudo update-ca-trust

Une fois la commande de mise à jour émise, le certificat est mis à disposition via /etc/pki/ca-trust/extracted arbre :

$ ls /etc/pki/ca-trust/extracted 
edk2 java openssl pem README

Les applications qui consultent ce répertoire pour vérifier les certificats peuvent utiliser n'importe lequel des formats fournis. La commande de mise à jour gère les copies, les conversions et la consolidation pour les différents formats. La page de manuel pour update-ca-trust contient plus d'informations sur la structure des répertoires, les formats et les moyens d'accès aux certificats, mais un moyen rapide de répertorier tous les sujets de certificat dans le groupe consiste à utiliser le awk suivant et openssl commandes :

$ awk -v cmd='openssl x509 -noout -subject' '/BEGIN/{close(cmd)};{print | cmd}' < /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

Maintenant que j'ai ajouté le certificat CA pour mon serveur satellite, je peux utiliser curl sans aucune option de certificat supplémentaire pour accéder à l'API :

$ curl --request GET --user admin https://satellite.example.com/katello/api/organizations 

Enter host password for user 'admin': 

{ "total": 1, "subtotal": 1,

...output omitted...

Il en va de même pour oc commandes, hammer commandes et de nombreuses autres applications en ligne de commande. Ces utilitaires peuvent utiliser les certificats gérés par ca-trust pour valider vos connexions.

[Vous voulez en savoir plus sur la sécurité ? Consultez la liste de vérification de la sécurité informatique et de la conformité.]


Linux
  1. Créer une partition de récupération sous Linux embarqué ?

  2. Microsoft Teams est désormais disponible sur Linux

  3. Une alternative légère au X11 est-elle disponible ?

  4. Outils d'overclocking sous Linux

  5. Vous ne faites pas confiance à une autorité de certification intermédiaire sous Linux ?

Comment installer des outils de développement sous Linux

Outils Linux :du contre df

Guide d'installation de VMware Tools sur Linux

Linux - Schéma du noyau Linux Vs. Outils de performances ?

Top 10 des distributions Linux

Les 10 meilleurs outils de lecture rapide de Linux actuellement disponibles