Jahrestag – let´s encrypt locker mit docker

Moin liebe Leser,

heute vor genau 8 Jahren habe ich diesen Blog erstellt. Ich habe damals glaub ich nicht gedacht das ich hier tatsächlich irgendwann man mal was schreibe oder irgendjemand diesen Blog hier überhaupt lesen wird. Aber mit der Zeit habe ich den ein oder anderen Post mit furchtbarer Grammatik und vielen Rechtschreibfehlern veröffentlicht. Hauptsächlich für mich selbst um hin und wieder noch mal was aufzuarbeiten oder mich an Themen und Informationen zu erinnern. Ja ich selbst nutzte mein Blog oft als Quelle für vergessenes, man kann sich ja nicht alles merken. 😉

Mein Thema heute ist auch ganz interessant und den Befehl den ich hier heute Posten werde, benötige ich selbst sicher noch öfter. Jedes mal dann wenn ich meine SSL Zertifikate erneuern muss.

Mein Server lief bis vor kurzem noch auf einem CentOS 7, jedoch hab ich es nicht vernünftig hin bekommen den Mail Server zum laufen zu bringen. Auch war der Server mit der Zeit ehr eine Sandbox mit irgendwelchen installierten Programmen die ich nie wieder brauchte.

Daher habe ich mich dazu entschlossen gehabt, mein System komplett neu aufzusetzen. Das OS ist nun ein Ubuntu LTS 14.04 mit installiertem Docker.IO. Ansonsten läuft auf dem Host selbst nur noch der Mail Server da ich hier nicht konsequent genug war um es in einem Docker Container zu packen den Apache2 selbst hab ich auch noch nicht im Docker.

Den Apache2 Server möchte ich kurzfristig mit einem nginx Docker Container austauschen und entsprechend einen PHP Container daran anpassen. Hier fehlt mir aber momentan die Lust und Zeit das htaccess File entsprechend zu portieren. Dann muss auch noch PHP 5.62 und der MySQL Server entsprechend in Container landen damit die Webseiten auch in einzelne Container laufen.

Desweiteren läuft ein TS3 Docker Container, ein Minecraft 1.9.2 Vanilla Docker Container, ein Minecraft Craftbukkit Docker Container.

Hier gefällt mir besonders gut das diese Software Pakete nicht auf dem Host selbst installiert sind und gekapselt visualisiert auf dem Server verweilen. Demnächst werde ich dann noch ein docker-composer Script schreiben der beim Server Restart entsprechende Container automatisch startet.

Jetzt zurück zum eigentlichen Thema dem Let´s encrypt Zertifikat für SSL.
Mit dem folgenden Befehl wird ein Container gestartet der direkt das let´s encrypt setup tool startet und auf dem Host entsprechende Certifikate ablegt. Den Ordner /var/www hab ich noch als mapping zwischen Host und Container gepackt damit ich diesen als WebRoot im Setup Tool angeben kann. Den 80er Port (HTTP) und 443er Port (HTTPS)  musste ich auch noch entsprechend anpassen da hier ja bereits der apache auf dem Host läuft.

Wenn man den automatischen temporären Webserver nutzten möchte sollte man vorab den apache/nginx stoppen um die ports frei zu haben.

sudo docker run -it –rm -p 443:443 -p 80:80 –name letsencrypt \
-v „/mnt/letsencrypt:/etc/letsencrypt“ \
-v „/mnt/ssl:/var/lib/letsencrypt“ \
quay.io/letsencrypt/letsencrypt:latest certonly –rsa-key-size 4096 -d meinedomain.de

Die noch offenen Container werde ich demnächst erstellen und dann auch auf meiner docker hub seite veröffentlichen.