letsencrypt-compose

Änderungsstand: 2020-04-19

Voraussetzung ist ein erstellter DuckDns-Account, eine darin erstellte Domain und ein gestarteter DuckDns-Docker.

Hier wird das Erstellen des Dockers Letsencrypt, mit anschließender Funktionsprüfung, beschrieben. Der Nachteil, den man hier hat, dass man Port`s im Router öffnen bzw. weiterleiten muss, damit die Zertifikatsübermittlung funktioniert.

Terminal:

Wenn noch nicht geschehen, den Hauptordner für die Compose-Dateien erstellen:

sudo mkdir /home/dockervolumes

Nun folgenden Befehl im Terminal eingeben ( Ordner wird erstellt und die *.yml wird dort geöffnet).

sudo mkdir /home/dockervolumes/letsencrypt
cd /home/dockervolumes/letsencrypt && sudo nano docker-compose.yml

Folgendes mit den eigenen Werten eintragen. Ich verwende die Port`s 91 und 450. Zur Information! Die Freigabe des http-Ports ist leider auch notwendig, da über diesem die Validierung des Cert-Key’s läuft.

---
version: "2"
services:
  letsencrypt:
    image: linuxserver/letsencrypt
    container_name: letsencrypt
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=1007
      - PGID=100
      - TZ=Europe/Berlin
      - URL=knilix-omv4.duckdns.org
      - SUBDOMAINS=wildcard
      - VALIDATION=duckdns
      - DUCKDNSTOKEN=das_Token
      - EMAIL=Email-Adresse
      - DHLEVEL=2048
      - ONLY_SUBDOMAINS=false
      - STAGING=false
    volumes:
      - /srv/dev-disk-by-label-SSD/Config/LetsencryptConfig:/config
    ports:
      - 450:443
      - 91:80
    restart: unless-stopped

Speichern mit Strg-x, y, Enter

Quelle: https://github.com/linuxserver/docker-letsencrypt/blob/master/README.md

Anschließend die „yml“ starten mit

cd /home/dockervolumes/letsencrypt && docker-compose up -d

Das Dockerimage wird heruntergeladen und der Docker mit der eingetragenen Konfiguration gestartet.

Wenn der Docker fertig erstellt wurde, muss die Portfreigabe im Router gesetzt werden. Ich verwende die FritzBox 7590 und erläutere es an diesem Beispiel. Die Software der Box ist derzeit 7.12. Dort im Menu auf „Internet“-„Freigaben“-„Portfreigaben“, den Server auswählen und editieren, „Neue Freigabe“ wählen, „Portfreigabe“ anklicken, HTTPS & TCP wählen und die Freigabe, wie auf dem Bild zu sehen, setzen. Anschließend „OK“ und „Übernehmen“. Die Port-Werte basieren auf dem Beispiel des Letsencrypt-Docker-Compose-File.

Das gleiche Szenario für den http-Port.

Wenn fertig, müssen beide Ports Grün leuchten.

Die Portfreigaben wurden für Letsencrypt erstellt und die Routerkonfiguration kann geschlossen werden.

im Terminal:

docker logs -f letsencrypt

Dieser Vorgang dauert etwas!

Ist der Vorgang abgeschlossen, muss am Ende nur Server ready stehen. Mit STRG-c beenden wir die Erstellung des Zertifikates. Jetzt rufen wir im Browser unsere DuckDNS-Adresse(n) auf. In meinem Beispiel wären das:

http s://knilixomv4.duckdns.org

http s://www.knilixomv4.duckdns.org

Folgende Erfolgsmeldung sollte da jetzt stehen.

Somit wäre Letsencrypt eingerichtet und funktionsfähig.

Falls der Docker gelöscht werden soll, einfach die Erklärung ansehen.

Die Zertifikate befinden sich in meinen Fall unter /srv/dev-disk-by-label-SSD/Config/LetsencryptConfig/etc/letsencrypt/live/knilix-omv4.duckdns.org/

Ich setze, nun einen Symlink nach /etc/ssl. Das macht für mich die weitere Verarbeitung einfacher.

ln -s /srv/dev-disk-by-label-SSD/Config/LetsencryptConfig/etc/letsencrypt/ /etc/ssl