Wie mounten Sie Zertifikate von CertBot für die Verwendung in Docker Container

491
NoMad

Das offizielle Tool certbot( https://certbot.eff.org ), über das Zertifikate ausgestellt und erneuert werden, Let's Encryptspeichert das aktuell gültige Zertifikat unter $/archive/$/certN.pem, wobei Neine beliebige Nummer angegeben ist. Die Pfade, die für den Zugriff auf die aktuell gültigen Zertifikate und Schlüssel verwendet werden sollten, sind relative Symbollinks in $/live/$/cert.pem:

root@skprov2:$/live/$# 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/$/cert2.pem 0 lrwxrwxrwx 1 root root 40 Jul 24 16:08 chain.pem -> ../../archive/$/chain2.pem 0 lrwxrwxrwx 1 root root 44 Jul 24 16:08 fullchain.pem -> ../../archive/$/fullchain2.pem 0 lrwxrwxrwx 1 root root 42 Jul 24 16:08 privkey.pem -> ../../archive/$/privkey2.pem 4.0K -rw-r--r-- 1 root root 682 Jul 23 09:40 README 

Wenn nur das liveVerzeichnis gemountet wird, können Programme, die in Docker-Containern ausgeführt werden, aufgrund der relativen Symlinks die erforderlichen Zertifikatsdaten nicht laden.

Wie können die neuesten (gültigen) Zertifikatsdaten certbotin einem Docker-Container verwendet werden?

0

1 Antwort auf die Frage

0
NoMad

Die relativen Symbolverknüpfungen werden auf 2 Ebenen (von domainOrdner zu liveOrdner, von liveOrdner zu rootOrdner) abgeglichen. Anschließend geben Sie den archiveOrdner und schließlich den darin enthaltenen domainUnterordner ein.

Um zu vermeiden, dass alle Domänen-Unterverzeichnisse eingehängt werden, um Zugriff auf alle Zertifikatdaten zu erhalten, müssen wir zwei Mounts verwenden.

Docker Host-Verzeichnisstruktur

Angenommen, die folgende Verzeichnisstruktur wurde von certbot auf dem Docker-Host erstellt:

/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 

Mounten der Unterverzeichnisse

In Docker möchten wir nur die Unterverzeichnisse für die Zieldomäne in den Container einhängen.

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

Auf diese Weise können Programme innerhalb des Containers die relativen Pfade zum archiveOrdner erfolgreich auflösen, während ihre Konfiguration auf die symbolischen Links im liveOrdner ( /cert/live/domain.com/cert.pem) verweist .