⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Utiliser les certificats CA avec Docker

Caution

Les bonnes pratiques doivent être suivies lors de l'utilisation de certificats CA Man-in-the-Middle (MITM) dans des conteneurs de production. S'ils sont compromis, les attaquants pourraient intercepter des données sensibles, usurper un service de confiance, ou effectuer des attaques man-in-the-middle. Consultez votre équipe de sécurité avant de procéder.

Si votre entreprise utilise un proxy qui inspecte le trafic HTTPS, vous pourriez avoir besoin d'ajouter les certificats racine requis à votre machine hôte et à vos conteneurs Docker ou images. C'est parce que Docker et ses conteneurs, lors du téléchargement d'images ou d'effectuer des requêtes réseau, doivent faire confiance aux certificats du proxy.

Sur l'hôte, l'ajout du certificat racine garantit que toutes les commandes Docker (comme docker pull) fonctionnent sans problèmes. Pour les conteneurs, vous devrez ajouter le certificat racine au magasin de confiance du conteneur soit pendant le processus de construction soit au moment de l'exécution. Cela garantit que les applications s'exécutant à l'intérieur des conteneurs peuvent communiquer via le proxy sans rencontrer d'avertissements de sécurité ou d'échecs de connexion.

Ajouter un certificat CA à l'hôte

Les sections suivantes décrivent comment installer les certificats CA sur votre hôte macOS ou Windows. Pour Linux, référez-vous à la documentation de votre distribution.

macOS

  1. Téléchargez le certificat CA pour votre logiciel proxy MITM.
  2. Ouvrez l'application Trousseau d'accès.
  3. Dans Trousseau d'accès, sélectionnez Système, puis basculez vers l'onglet Certificats.
  4. Glissez-déposez le certificat téléchargé dans la liste des certificats. Entrez votre mot de passe si demandé.
  5. Trouvez le certificat nouvellement ajouté, double-cliquez dessus, et développez la section Confiance.
  6. Définissez Toujours faire confiance pour le certificat. Entrez votre mot de passe si demandé.
  7. Démarrez Docker Desktop et vérifiez que docker pull fonctionne, en supposant que Docker Desktop est configuré pour utiliser le proxy MITM.

Windows

Choisissez si vous voulez installer le certificat en utilisant la Microsoft Management Console (MMC) ou votre navigateur web.

  1. Téléchargez le certificat CA pour le logiciel proxy MITM.
  2. Ouvrez la Microsoft Management Console (mmc.exe).
  3. Ajoutez le Composant logiciel enfichable Certificats dans la MMC.
    1. Sélectionnez FichierAjouter/Supprimer un composant logiciel enfichable, puis sélectionnez CertificatsAjouter >.
    2. Sélectionnez Compte d'ordinateur puis Suivant.
    3. Sélectionnez Ordinateur local puis sélectionnez Terminer.
  4. Importez le certificat CA :
    1. Depuis la MMC, développez Certificats (Ordinateur local).
    2. Développez la section Autorités de certification racines de confiance.
    3. Cliquez avec le bouton droit sur Certificats et sélectionnez Toutes les tâches et Importer….
    4. Suivez les invites pour importer votre certificat CA.
  5. Sélectionnez Terminer puis Fermer.
  6. Démarrez Docker Desktop et vérifiez que docker pull réussit (en supposant que Docker Desktop est déjà configuré pour utiliser le serveur proxy MITM).
Note

Selon le SDK et/ou l'environnement d'exécution/framework utilisé, des étapes supplémentaires peuvent être requises au-delà de l'ajout du certificat CA au magasin de confiance du système d'exploitation.

  1. Téléchargez le certificat CA pour votre logiciel proxy MITM.
  2. Ouvrez votre navigateur web, allez dans Paramètres et ouvrez Gérer les certificats
  3. Sélectionnez l'onglet Autorités de certification racines de confiance.
  4. Sélectionnez Importer, puis parcourez pour le certificat CA téléchargé.
  5. Sélectionnez Ouvrir, puis choisissez Placer tous les certificats dans le magasin suivant.
  6. Assurez-vous que Autorités de certification racines de confiance est sélectionné et sélectionnez Suivant.
  7. Sélectionnez Terminer puis Fermer.
  8. Démarrez Docker Desktop et vérifiez que docker pull réussit (en supposant que Docker Desktop est déjà configuré pour utiliser le serveur proxy MITM).

Ajouter des certificats CA aux images et conteneurs Linux

Si vous devez exécuter des charges de travail conteneurisées qui dépendent de certificats internes ou personnalisés, comme dans des environnements avec des proxies d'entreprise ou des services sécurisés, vous devez vous assurer que les conteneurs font confiance à ces certificats. Sans ajouter les certificats CA nécessaires, les applications à l'intérieur de vos conteneurs peuvent rencontrer des requêtes échouées ou des avertissements de sécurité lors de la tentative de connexion à des points de terminaison HTTPS.

En ajoutant des certificats CA aux images au moment de la construction, vous vous assurez que tous les conteneurs démarrés à partir de l'image feront confiance aux certificats spécifiés. Ceci est particulièrement important pour les applications qui nécessitent un accès transparent aux API internes, bases de données, ou autres services pendant la production.

Dans les cas où reconstruire l'image n'est pas faisable, vous pouvez à la place ajouter des certificats aux conteneurs directement. Cependant, les certificats ajoutés au moment de l'exécution ne persisteront pas si le conteneur est détruit ou recréé, donc cette méthode est typiquement utilisée pour des corrections temporaires ou des scénarios de test.

Ajouter des certificats aux images

Note

Les commandes suivantes sont pour une image de base Ubuntu. Si votre construction utilise une distribution Linux différente, utilisez des commandes équivalentes pour la gestion des paquets (apt-get, update-ca-certificates, etc.).

Pour ajouter un certificat ca à une image de conteneur lorsque vous la construisez, ajoutez les instructions suivantes à votre Dockerfile.

# Installer le paquet ca-certificate
RUN apt-get update && apt-get install -y ca-certificates
# Copier le certificat CA depuis le contexte vers le conteneur de construction
COPY your_certificate.crt /usr/local/share/ca-certificates/
# Mettre à jour les certificats CA dans le conteneur
RUN update-ca-certificates

Ajouter des certificats aux conteneurs

Note

Les commandes suivantes sont pour un conteneur basé sur Ubuntu. Si votre conteneur utilise une distribution Linux différente, utilisez des commandes équivalentes pour la gestion des paquets (apt-get, update-ca-certificates, etc.).

Pour ajouter un certificat CA à un conteneur Linux en cours d'exécution :

  1. Téléchargez le certificat CA pour votre logiciel proxy MITM.

  2. Si le certificat est dans un format autre que .crt, convertissez-le au format .crt :

    Exemple de commande
    $ openssl x509 -in cacert.der -inform DER -out myca.crt
    
  3. Copiez le certificat dans le conteneur en cours d'exécution :

    $ docker cp myca.crt <containerid>:/tmp
    
  4. Attachez-vous au conteneur :

    $ docker exec -it <containerid> sh
    
  5. Assurez-vous que le paquet ca-certificates est installé (requis pour mettre à jour les certificats) :

    # apt-get update && apt-get install -y ca-certificates
    
  6. Copiez le certificat à l'emplacement correct pour les certificats CA :

    # cp /tmp/myca.crt /usr/local/share/ca-certificates/root_cert.crt
    
  7. Mettez à jour les certificats CA :

    # update-ca-certificates
    
    Exemple de sortie
    Updating certificates in /etc/ssl/certs...
    rehash: warning: skipping ca-certificates.crt, it does not contain exactly one certificate or CRL
    1 added, 0 removed; done.
  8. Vérifiez que le conteneur peut communiquer via le proxy MITM :

    # curl https://example.com
    
    Exemple de sortie
    <!doctype html>
    <html>
    <head>
        <title>Example Domain</title>
    ...