Comment monter des certificats de CertBot à utiliser dans Docker Container

0

L'officiel certbot ( https://certbot.eff.org ) outil pour émettre et renouveler des certificats de Let's Encrypt enregistre le certificat en cours de validité dans ${prefix}/archive/${domain}/certN.pem, où N est un nombre arbitraire. Les chemins qui doivent être utilisés pour accéder aux certificats et clés en cours de validité sont des liens symboliques relatifs dans ${prefix}/live/${domain}/cert.pem:

root@skprov2:${prefix}/live/${domain}# ls
total 12K
4.0K drwxr-xr-x 2 root root 4.0K Jul 24 16:08 ./
4.0K drwx------ 9 root root 4.0K Aug 24 10:57 ../
   0 lrwxrwxrwx 1 root root   39 Jul 24 16:08 cert.pem -> ../../archive/${domain}/cert2.pem
   0 lrwxrwxrwx 1 root root   40 Jul 24 16:08 chain.pem -> ../../archive/${domain}/chain2.pem
   0 lrwxrwxrwx 1 root root   44 Jul 24 16:08 fullchain.pem -> ../../archive/${domain}/fullchain2.pem
   0 lrwxrwxrwx 1 root root   42 Jul 24 16:08 privkey.pem -> ../../archive/${domain}/privkey2.pem
4.0K -rw-r--r-- 1 root root  682 Jul 23 09:40 README

Quand seulement monter le live répertoire, les programmes exécutés à l’intérieur des conteneurs de menu fixe échoueront lors du chargement des données de certificat requises, en raison des liens symboliques relatifs.

Comment les dernières données de certificat (valides) de certbot être utilisé dans un conteneur Docker?

NoMad
la source

Réponses:

0

Les liens symboliques relatifs sont mappés pour remonter 2 couches (de domain dossier à live dossier, de live dossier à root dossier), puis entrez le archive dossier et enfin le domain sous-dossier dans.

Pour éviter le montage tout sous-répertoires du domaine, donnant accès à toutes les données du certificat, nous devons utiliser 2 montages

Structure du répertoire de l'hôte Docker

Supposons la structure de répertoires suivante créée par certbot sur l'hôte Docker:

/certbot/
    |-live/
    |  |-domain.com
    |  |  |-cert.pem
    |  |  |-privkey.pem
    |  |-domain2.com
    |     |-cert.pem
    |     |-privkey.pem
    |
    |-archive/
       |-domain.com
       |  |-cert.pem
       |  |-privkey.pem
       |-domain2.com
          |-cert.pem
          |-privkey.pem

Monter les sous-répertoires

Dans Docker, nous voulons uniquement que les sous-répertoires du domaine cible soient montés dans le conteneur.

docker run \
  -v /certbot/live/domain.com:/cert/live/domain.com:ro \
  -v /certbot/archive/domain.com:/cert/archive/domain.com:ro \
  myimage:tag

De cette façon, les programmes du conteneur peuvent résoudre avec succès les chemins relatifs vers le archive dossier pendant que leur configuration pointe vers les liens symboliques à l'intérieur du live dossier ( /cert/live/domain.com/cert.pem ).

NoMad
la source