19.3. Configurer des certificats SSL pour OpenPegasus

OpenLMI utilise le protocole de gestion d'entreprise basée web WBEM (« Web-Based Enterprise Management ») qui fonctionne sur une couche de transport HTTP. Une authentification de base HTTP standard est effectuée dans ce protocole, ce qui signifie que le nom d'utilisateur et le mot de passe sont transmis avec les requêtes.
Configurer le CIMOM OpenPegasus à utiliser HTTPS pour les communications est nécessaire pour vous assurer une authentification sécurisée. Un certificat « Secure Sockets Layer » (SSL) ou « Transport Layer Security » (TLS) est requis sur le système géré pour établir un canal chiffré.
Il existe deux manières de gérer les certificats SSL/TLS sur un système :
  • Les certificats auto-signés requièrent une moindre utilisation de l'infrastructure, mais sont plus difficiles à déployer sur des clients et à gérer de manière sécurisée.
  • Les certificats signés par une autorité sont plus faciles à déployer sur des clients une fois qu'ils sont paramétrés, mais ils nécessitent un investissement initial plus élevé.
Lors de l'utilisation d'un certificat signé par autorité, il est nécessaire de configurer une autorité de certificats de confiance sur les systèmes clients. Cette autorité peut ensuite être utilisée pour signer tous les certificats CIMOM des systèmes gérés. Les certificats peuvent également faire partie d'une chaîne de certificats, de manière à ce que le certificat utilisé pour signer les certificats des systèmes gérés puissent ensuite être signés par un autre avec une autorité plus élevée (comme Verisign, CAcert, RSA et bien d'autres).
Les emplacements par défaut des certificats et du trust store sur le système de fichiers sont indiqués dans Tableau 19.2, « Emplacements des certificats et du trust store ».

Tableau 19.2. Emplacements des certificats et du trust store

Option de configurationEmplacementDescription
sslCertificateFilePath/etc/Pegasus/server.pemCertificat public du CIMOM.
sslKeyFilePath/etc/Pegasus/file.pemClé privée uniquement connue par le CIMOM.
sslTrustStore/etc/Pegasus/client.pemFichier ou répertoire fournissant la liste des autorités de certificats de confiance.

Important

Si vous modifiez l'un des fichiers mentionnés dans la Tableau 19.2, « Emplacements des certificats et du trust store », redémarrez le service tog-pegasus pour vous assurer qu'il reconnaisse les nouveaux certificats. Pour redémarrer le service, veuillez saisir ce qui suit à l'invite de shell en tant qu'utilisateur root :
systemctl restart tog-pegasus.service
Pour obtenir davantage d'informations sur la manière de gérer les services système sur Red Hat Enterprise Linux 7, veuillez consulter le Chapitre 9, Gérer les services avec systemd.

19.3.1. Gérer les certificats auto-signés

Un certificat auto-signé utilise sa propre clé privée pour se signer lui-même et n'est connecté à aucune chaîne de confiance. Sur un système géré, si les certificats n'ont pas été fournis par l'administrateur avant que le service tog-pegasus ait été lancé une première fois, un ensemble de certificats auto-signés seront automatiquement générés en utilisant le nom d'hôte principal du système comme sujet du certificat.

Important

Les certificats auto-signés générés automatiquement sont valides par défaut pendant 10 ans, mais ils n'ont pas la capacité de se renouveller automatiquement. Toute modification apportée à ces certificats nécessitera de créer des nouveaux certificats manuellement en suivant les directives fournies par la documentation OpenSSL ou Mozilla NSS.
Pour configurer les systèmes client pour qu'ils fassent confiance au certificat auto-signé, veuillez effectuer les étapes suivantes :
  1. Veuillez copier le certificat /etc/Pegasus/server.pem du système géré au répertoire /etc/pki/ca-trust/source/anchors/ sur le système client. Pour cela, veuillez saisir ce qui suit dans une invite de shell en tant qu'utilisateur root :
    scp root@hostname:/etc/Pegasus/server.pem /etc/pki/ca-trust/source/anchors/pegasus-hostname.pem
    Veuillez remplacer hostname par le nom d'hôte du système géré. Remarquez que cette commande fonctionne uniquement si le service sshd est en cours d'exécution sur le système géré et est configuré pour autoriser l'utilisateur root à se connecter au système via le protocole SSH. Pour obtenir des informations supplémentaires sur la manière d'installer et de configurer le service sshd, ainsi que sur la commande scp pour transférer des fichiers sur le protocole SSH, veuillez consulter le Chapitre 10, OpenSSH.
  2. Veuillez vérifier l'intégrité du certificat sur le système client en comparant son checksum avec celui du fichier d'origine. Pour calculer le checksum du fichier /etc/Pegasus/server.pem sur le système géré, veuillez exécuter la commande suivante en tant qu'utilisateur root sur ce système :
    sha1sum /etc/Pegasus/server.pem
    Pour calculer le checksum du fichier /etc/pki/ca-trust/source/anchors/pegasus-hostname.pem sur le système client, veuillez exécuter la commande suivante sur ce système :
    sha1sum /etc/pki/ca-trust/source/anchors/pegasus-hostname.pem
    Remplacez hostname par le nom d'hôte du système géré.
  3. Mettez à jour le trust store sur le système client en exécutant la commande suivante en tant qu'utilisateur root :
    update-ca-trust extract

19.3.2. Gestion de certificats signés par des autorités avec Identity Management (recommandé)

La fonctionnalité Identity Management sur Red Hat Enterprise Linux fournit un contrôleur de domaines qui simplifie la gestion des certificats SSL dans les systèmes joints au domaine. Entre autres, le serveur Identity Management offre une autorité de certificat (CA) intégrée. Veuillez consulter le Guide des politiques, de l'authentification et des identités de domaines Linux Red Hat Enterprise Linux 7 ou la documentation FreeIPA pour obtenir des informations sur la manière de joindre le client et les systèmes gérés sur le domaine.
Il est nécessaire d'enregistrer le système géré sur Identity Management ; pour les systèmes clients, l'enregistrement est optionnel.
Les étapes suivantes sont requises sur le système géré :
  1. Veuillez installer le paquet ipa-client et enregistrer le système sur Identity Management, comme décrit dans le Guide des politiques, de l'authentification et des identités de domaines Linux Red Hat Enterprise Linux 7.
  2. Veuillez copier le certificat de signature Identity Management dans le trust store en saisissant la commande suivante en tant qu'utilisateur root :
    cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
  3. Mettre à jour le trust store en exécutant la commande suivante en tant qu'utilisateur root :
    update-ca-trust extract
  4. Enregistrer Pegasus en tant que service dans le domaine Identity Management en exécutant la commande suivante en tant qu'utilisateur de domaine privilégié :
    ipa service-add CIMOM/hostname
    Remplacez hostname par le nom d'hôte du système géré.
    Cette commande peut être exécutée à partir de n'importe quel système dans le domaine Identity Management sur lequel le paquet ipa-admintools a été installé. Une entrée de service est créée dans Identity Management, celle-ci peut être utilisée pour générer des certificats SSL.
  5. Effectuez une copie de sauvegarde des fichiers PEM situés dans le répertoire /etc/Pegasus/ (recommandé).
  6. Récupérer le certificat signé en exécutant la commande suivante en tant qu'utilisateur root :
    ipa-getcert request -f /etc/Pegasus/server.pem -k /etc/Pegasus/file.pem -N CN=hostname -K CIMOM/hostname
    Remplacez hostname par le nom d'hôte du système géré.
    Le certificat et les fichiers clé sont désormais conservés dans des emplacements corrects. Le démon certmonger, installé sur le système géré par le script ipa-client-install garantit que le certificat soit à jour et renouvellé comme nécessaire.
Pour enregistrer le système client et mettre à jour le trust store, veuillez suivre les étapes ci-dessous :
  1. Veuillez installer le paquet ipa-client et enregistrer le système sur Identity Management, comme décrit dans le Guide des politiques, de l'authentification et des identités de domaines Linux Red Hat Enterprise Linux 7.
  2. Veuillez copier le certificat de signature Identity Management dans le trust store en saisissant la commande suivante en tant qu'utilisateur root :
    cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
  3. Mettre à jour le trust store en exécutant la commande suivante en tant qu'utilisateur root :
    update-ca-trust extract
Si le système client n'est pas censé être enregistré sur Identity Management, veuillez effectuer les étapes suivantes pour mettre à jour le trust store.
  1. Veuillez copier le fichier /etc/ipa/ca.crt de manière sécurisée depuis tout autre système joint au même domaine Identity Management sur le répertoire du magasin des confiances /etc/pki/ca-trust/source/anchors/ en tant qu'utilisateur root.
  2. Mettre à jour le trust store en exécutant la commande suivante en tant qu'utilisateur root :
    update-ca-trust extract

19.3.3. Gérer manuellement les certificats signés par des autorités

Gérer des certificats signés par des autorités avec d'autres mécanismes qu'Identity Management requiert une configuration manuelle plus importante.
Il est nécessaire de s'assurer que tous les clients fassent effectivement confiance au certificat de l'autorité qui signera les certificats du système géré :
  • Si une autorité de certificats est de confiance par défaut, il n'est pas nécessaire d'effectuer des étapes particulières pour accomplir ceci.
  • Si l'autorité du certificat n'est pas de confiance par défaut, le certificat devra être importé sur le client et sur les systèmes gérés.
    1. Copiez le certificat sur le magasin des confiances en saisissant la commande suivante en tant qu'utilisateur root :
      cp /path/to/ca.crt /etc/pki/ca-trust/source/anchors/ca.crt
    2. Mettre à jour le trust store en exécutant la commande suivante en tant qu'utilisateur root :
      update-ca-trust extract
Sur le système géré, veuillez effectuer les étapes suivantes :
  1. Créer le fichier de configuration SSL /etc/Pegasus/ssl.cnf pour stocker des informations sur le certificat. Le contentu de ce fichier doit être similaire à l'exemple suivante :
    [ req ]
    distinguished_name     = req_distinguished_name
    prompt                 = no
    [ req_distinguished_name ]
    C                      = US
    ST                     = Massachusetts
    L                      = Westford
    O                      = Fedora
    OU                     = Fedora OpenLMI
    CN                     = hostname
    Remplacez hostname avec le nom de domaine complet du système géré.
  2. Générez une clé privée sur le système géré en utilisant la commande suivante en tant qu'utilisateur root :
    openssl genrsa -out /etc/Pegasus/file.pem 1024
  3. Veuillez générer une requête de signature de certificat (CSR) en exécutant la commande suivante en tant qu'utilisateur root :
    openssl req -config /etc/Pegasus/ssl.cnf -new -key /etc/Pegasus/file.pem -out /etc/Pegasus/server.csr
  4. Veuillez envoyer le fichier /etc/Pegasus/server.csr sur l'autorité du certificat pour la signature. La procédure détaillée de soumission du fichier dépend de l'autorité du certificat en question.
  5. Lorsque le certificat signé est reçu de l'autorité du certificat, enregistrez-le sous /etc/Pegasus/server.pem.
  6. Veuillez copier le certificat de l'autorité de confiance sur le magasin des confiances Pegasus afin de vous assurer que Pegasus est capable de croire en son propre certificat en exécutant la commande suivante en tant qu'utilisateur root :
    cp /path/to/ca.crt /etc/Pegasus/client.pem
Après avoir accompli les étapes décrites ci-dessus, les clients faisant confiance en l'autorité de signature seront en mesure de communiquer avec succès avec le CIMOM du serveur géré.

Important

Contrairement à la solution Identity Management, si le certificat expire et doit être renouvellé, toutes les étapes manuelles décrites devront être effectuées à nouveau. Il est recommandé de renouveller les certificats avant leur expiration.