Dokumentation
Confconsole: Let's Encrypt
Inhalt
- Übersicht
- Cert Auto Erneuerung
- Erhaltbescheinigung
- HTTP-01 - validiert über Port 80
- DNS-01 - validieren Sie über DNS Record
- Besonderer Hinweis auf Wildcard Zertifikate
- Ein Zertifikat bekommen - Hinter den Kulissen
- Cron Job Details
- Erweiterte - Custom Maintence Nachricht
- Fortgeschrittene - Nutzung mit mehreren Domainnamen
Übersicht
Confconsole Let's Encrypt Plugin bietet eine einfache Möglichkeit, eine kostenlose legitime CA TLS / SSL-Zertifikat über Let's Encrypt signiert zu erhalten. HTTP-01 und DNS-01 "Herausforderung" -Methoden, um Ihre Kontrolle über die (Sub-)Domain(s) zu validieren, die Sie registrieren.
HTTP-01-Herausforderungen werden von unserem benutzerdefinierten Mini-Webserver über Port 80 gehostet. Wenn Port 80 bereits verwendet wird, wird der Standard-Webserver vorübergehend gestoppt. DNS-01 Herausforderungen werden durch vorübergehendes Einstellen eines TXT DNS-Records über eine Unterstützte DNS-Anbieter API.
Standardmäßig unterstützt Confconsole die Registrierung einer Domain mit bis zu 4 Subdomains in einem einzigen Zertifikat, das der bestehende Webserver auf allen https-Ports verwenden wird. So wird Adminer usw. auch das gleiche Zertifikat verwenden, ebenso wie Webmin (über den in Miniserver eingebauten Server). Wildcard-Zertifikate werden ebenfalls unterstützt, erfordern jedoch eine DNS-01-Validierung (nicht kompatibel mit HTTP-01).
Über die Ersteinrichtung über Confconsole hinaus ist in der Regel keine zusätzliche Konfiguration Ihres Servers erforderlich. Seltenere und/oder komplexere sind immer noch möglich, erfordern jedoch möglicherweise eine zusätzliche Konfiguration.

Standardmäßig sollte Confconsole mit diesen Servern / Webservern "einfach funktionieren":
- Apache
- LigHTTPd
- Nginx
- Tomcat
- Webmin
Wenn Sie Unterstützung für alternative Server sehen möchten, posten Sie bitte auf der Forenund/oder ein Problem eröffnen Unser Tracker Wenn Sie offen für beitragende Code sind, ist das sehr willkommen.
Cert Auto Erneuerung
Auswählen dieser Option macht den Standard TLS / SSL Zertifikatsverlängerung cron Job ()/etc/cron.daily/confconsole-dehydrated) ausführbar (oder nicht). Nur ausführbare Dateien innerhalb von /etc/cron.daily werden automatisch von cron ausgelöst.
Anmerkung: Bis Sie Ihr ursprüngliches Zertifikat erhalten (das auch dehydriert konfiguriert), existiert der Cron-Job nicht im Verzeichnis cron.daily. Dadurch wird sichergestellt, dass der Cron-Job erst aktiviert werden kann, wenn der dehydrierte Wrapper ausgeführt wurde (und hoffentlich ein Let's Encrypt TLS / SSL-Zertifikat generiert wurde).
Anmerkung: Um Wildcard-Zertifikate mit der TurnKey Let's Encrypt-Integration zu generieren, müssen Sie diese verwenden. DNS-01 ValidierungDNS-01 Validierung ist nicht vor Confconsole v2.1 verfügbar (erst erscheint in TurnKey v18.0).
Für weitere Informationen darüber, was der Cron-Job tatsächlich tut, siehe Cron Job Details unten.
Erhaltbescheinigung
Wenn Sie diese Option auswählen, können Sie einen einzigen vollqualifizierten Domainnamen (FQDN) für Ihren Server festlegen.
Eine weitere Option ist das Setzen einer Root-Domain und bis zu 4 separate Subdomains.
Wenn Sie mehr als eine Root-Domain und/oder mehr als 4 Subdomains festlegen möchten, ist eine manuelle Konfiguration erforderlich. Fortgeschrittene - Nutzung mit mehreren Domainnamen Wenn Sie ein anderes Szenario nicht abgedeckt haben, melden Sie sich bitte an und posten Sie in den Foren.
Ein Zertifikat erhalten - HTTP-01
Diese Option bestätigt Ihren Besitz der Domain(s), indem Sie öffentliche DNS-Datensätze der Domain(s) nachschlagen und überprüfen, ob die entsprechenden Herausforderungsdaten über Port 80 Ihres Servers.
Anforderungen:
- Port 80: Port 80 (Standard Vanilla HTTP Port) muss auf Ihrem Server geöffnet und öffentlich verfügbar sein
- DNS-Record(s): autoritative 'A'/'AAAA' oder 'CNAME'-Record(s), die auf Ihren Server aufgelöst werden (für alle Domains/Subdomains, für die Sie Zertifikate erhalten)
Hafen 80: Über den Port hinaus, der extern zugänglich ist, sind keine Änderungen an der bestehenden Webserver-Konfiguration erforderlich, z.B. Die Umleitung des gesamten Datenverkehrs von HTTP zu HTTP wird ignoriert, muss also nicht geändert werden.
DNS-Datensatz(e): Wenn Sie gerade die erforderlichen Änderungen an Ihrem DNS-Registrar vorgenommen haben, beachten Sie bitte, dass es einige Zeit dauern kann, bis DNS-Datensätze öffentlich verbreitet werden. Um zu überprüfen, ob Ihre DNS-Datensätze öffentlich verfügbar sind, überprüfen Sie bitte "digen". Grabungswerkzeug.
Wichtiger Hinweis: Bitte stellen Sie sicher, dass Ihre Domain-Nameserver korrekt konfiguriert sind und Port 80 öffentlich verfügbar ist, bevor Sie dies ausführen. Wenn Sie dies nicht tun, werden die Let's Encrypt-Herausforderungen fehlschlagen (dadurch erhalten Sie kein Zertifikat). Wiederholte Fehler können dazu führen, dass Ihr Server (für eine Woche) von weiteren Versuchen blockiert wird.
Ein Zertifikat erhalten - DNS-01
Diese Option bestätigt Ihren Besitz der Domain(s), indem Sie einen speziellen öffentlichen DNS TXT-Record der Root-Domain nachschlagen und sicherstellen, dass er die entsprechende Herausforderung enthält Daten. Es ist kein externer Zugriff auf Ihren Server erforderlich, daher ist diese Option ideal für interne / Intranet-Server. Diese Option unterstützt auch Platzhalterzertifikate (z. B. '*.example.com').
Anforderungen:
- Unterstützter DNS-Anbieter: Ihre Domain muss bei einem Unterstützter Anbieter
- Anmeldeinformationen: Benutzeranmeldeinformationen und/oder API-Schlüssel (falls relevant) für den Zugriff auf das API-System Ihres DNS-Anbieters
Unterstützter DNS-Anbieter: Der erforderliche TXT DNS-Datensatz muss mit Ihrem DNS-Registrar erstellt werden. Confconsole nutzt Dehydriert die wiederum Hebelwirkungen dns-lexicon Um den erforderlichen TXT DNS-Datensatz zu erstellen, muss Ihre Domain mit einem Unterstützter Anbieter.
Anmeldeinformationen: Um den erforderlichen DNS-Datensatz zu erstellen, ist der Zugriff auf Ihren DNS-Anbieter (über API) erforderlich. dns-lexicon docsAuf dieser Dokumentseite finden Sie Ihren Provider und klicken auf den Link, der Sie zum entsprechenden Abschnitt dieser Seite führen sollte. Die relevanten Felder sind als Punktpunkte formatiert, wobei der Schlüssel in der monospace-Schrift, orange gefärbt, mit einer Erklärung nach.
Beachten Sie, dass die Konfigurationsdatei Kommentare enthalten kann (Zeilen, die mit einem '#'-Präfix beginnen), die ignoriert werden.
AWS Route53: (Lexikondokumente)
# AWS Route53 example auth_access_key: YOUR_AWS_ACCESS_KEY auth_access_secret: YOUR_AWS_ACCESS_SECRET private_zone: False # generally you'll always want public zone zone_id: YOUR_ZONE_ID
Cloudflare: (Lexikondokumente)
# Cloudflare example 1 - using global api key auth_username: YOUR_CF_USERNAME auth_token: YOUR_CF_API_TOKEN
oder
# Cloudflare example 2 - using unscoped API token auth_token: YOUR_CF_UNSCOPED_API_TOKEN
oder
# Cloudflare example 3 - using scoped API token auth_token: YOUR_CF_SCOPED_API_TOKEN zone_id: YOUR_CF_ZONE_ID
Für andere DNS-Anbieter konsultieren Sie bitte die entsprechenden Dokumente, indem Sie auf Ihren Anbieter in der Liste oben auf der Liste klicken. DNS Lexicon-Anbieter-Dokument.
Besonderer Hinweis auf Wildcard Zertifikate
Bitte beachten Sie, dass die Generierung eines Wildcard-Zertifikat ist nur verfügbar, wenn Sie die DNS-01 Challenge-Methode verwenden.
Ein Wildcard-Zertifikat ist ein spezielles Zertifikat, das für eine Domain generiert wird, die mit einem Sternchen beginnt: '*', z.B. '*.example.com'. Dieses spezielle Zertifikat, das zu jeder Subdomain (innerhalb von Limits) passt. '*.example.com' deckt Websites mit Domains wie 'www.example.com', 'blog.example.com' und 'docs.example.com' ab. Das gleiche Zertifikat funktioniert jedoch nicht mit Sub-Sub-Domains, z.B. Ein '*.example.com'-Zertifikat funktioniert nicht mit 'www.docs.example.com'. Damit 'www.docs.example.com' mit einem Platzhalter-Zertifikat arbeiten kann, benötigen Sie ein Zertifikat für '*.docs.example.com'.
Es ist möglich, bestimmte Subdomains gleichzeitig mit der Registrierung einer Platzhalterdomain zu registrieren, jedoch muss die Platzhalterdomain an erster Stelle stehen. Mehrere Wildcard-Domains sind ebenfalls erlaubt.
Außerdem muss Dehydrated bei der Registrierung einer Platzhalter-Domain einen Alias angeben. Sie sehen online Anweisungen, um die Domain(s) mit einem ">" gefolgt vom Alias zu trennen. Sie können das tun, wenn Sie möchten, aber Confconsole wird es ignorieren und seinen eigenen Alias generieren.
Die erweiterten Funktionen, die bei der Verwendung von Aliases mit Dehydarated unterstützt werden, erfordern die Verwendung von Standalone.
Wichtiger Hinweis: Bitte stellen Sie sicher, dass Sie Ihre DNS-Registrar-Informationen korrekt haben. Falsche Authentifizierungsdetails führen dazu, dass die Let's Encrypt-Herausforderungen fehlschlagen (damit Sie kein Zertifikat erhalten). Wiederholte Fehler können dazu führen, dass Ihr Server (für eine Woche) von weiteren Versuchen blockiert wird.
Ein Zertifikat bekommen - Hinter den Kulissen
Der Prozess läuft so ab:
- Confconsole Let's Encrypt Plugin schreibt die Domain (und Subdomains) an /etc/dehydrated/confconsole.domains.txt
- Confconsole ruft dehydriertes Wrapper
- Dehydriertes Wrapper stoppt Webserver-Hören auf Port 80
- Dehydratisierungskontrollen für /etc/dehydrated/confconsole.config (config file); wenn es nicht existiert, kopiert es die standarddatei von:. /usr/share/confconsole/letsencrypt/dehydrated-confconsole.config
- Dehydratisierungskontrollen für /etc/dehydrated/confconsole.hook.sh (Hook-Script); wenn es nicht existiert, kopiert es die Standarddatei von: /usr/share/confconsole/letsencrypt/dehydrated-confconsole.hook.sh
- Dehydratisierungskontrollen für /etc/cron.daily/confconsole-dehydrated (cron script); wenn es nicht existiert, kopiert es die standarddatei von:. /usr/share/confconsole/letsencrypt/dehydrated-confconsole.cron
- dehydrierte Umverpackungsrufe dehydriert, vorbei confconsole.config, confconsole.hook.sh & confconsole.domains.txt (Alles gespeichert innerhalb) /etc/dehydrated/)
- dehydrierte Kontakte Let's Encrypt und erhält die Herausforderung (um zu beweisen, dass Sie die Domain kontrollieren)
- Während des Hostings der Challenge leitet Add-water vorübergehend den gesamten Web-Traffic mit Ausnahme der Challenge (d. H. 304 - vorübergehend verschoben) zum Web-Root um. Eine einfache Nachricht "Unter Wartung" wird angezeigt. Erweiterte - Custom Maintence Nachricht unten.
- über das Hook-Script, dehydriert bedient Let's Encrypt-Herausforderungen mit Add-Wasser-Server (Minimalist Python Webserver)
- Wenn es fertig ist, wird Add-Wasser getötet (über Hook-Skript)
- dehydriert schreibt Zertifikat an /etc/ssl/private/cert.pem (über Hook-Skript); Original-Zertifikate, die durch dehydriertes Bleiben in /var/lib/dehydrated/certs/DOMAIN
- dehydrierte Hände zurück zu dehydriertem Wrapper
- Dehydrated-Wrapper startet Webserver neu
- Dehydrated-Wrapper startet den Tunnel neu (daher verwenden Webmin & Webshell auch ein neues Zertifikat)
- Dehydrated-Wrapper Hände zurück zu confconsole
Cron Job Details
Der Cron-Job überprüft das Ablaufdatum des Standardzertifikats ()/etc/ssl/private/cert.pem) und wenn es innerhalb von 30 Tagen oder weniger abläuft, läuft es dehydriert-Wrapper (mit dem --force-Schalter).
Erweiterte - Custom Maintence Nachricht
Wie bereits erwähnt, wird Add-Wasser, während es den Herausforderungen dient, alle anderen URLs auf den Web-Root umleiten. Standardmäßig wird eine einfache "Wartung"-Nachricht über eine grundlegende index.html-Datei angezeigt.
Wenn Sie eine benutzerdefinierte Nachricht anzeigen möchten, können Sie eine benutzerdefinierte index.html-Datei zu /var/lib/confconsole/letsencrypt/. hinzufügen, z. B. um den Standard zu kopieren und dann zu optimieren:
mkdir -p /var/lib/confconsole/letsencrypt/
cp /usr/share/confconsole/letsencrypt/index.html \
/var/lib/confconsole/letsencrypt/index.html
Add-Wasser wird /var/lib/confconsole/letsencrypt/index.html dienen, wenn es vorhanden ist, oder sonst wird zurück zum Standard fallen.
Anmerkung: Die benutzerdefinierte Datei muss benannt werden index.html und enthalten nur gültige HTML (und CSS). PHP oder andere serverseitige Sprachen werden nicht unterstützt. Embedded (d.h. "inline") JavaScript wird ebenfalls unterstützt, da dies Clientseite verarbeitet wird.
Fortgeschrittene - Nutzung mit mehreren Domainnamen
Das interaktive Confconsole-Plugin unterstützt nur eine einzige Domain mit bis zu 4 Subdomains. Der dehydrierte Wrapper kann jedoch mehrere Root-Domänen plus mehrere Subdomänen verarbeiten. Um dies zu unterstützen, müssen Sie an mehreren Stellen manuell Konfigurationsanpassungen vornehmen:
- Hinzufügen zusätzlicher Domains zum /etc/dehydrated/confconsole.domains.txt
- Stellen Sie sicher, dass jede Zeile mit der Basisdomäne beginnt, gefolgt von einer raumgetrennten Liste aller Subdomains.
- WARNING: Wenn Sie das Let's Encrypt-Plugin von confconsole erneut ausführen, werden Ihre benutzerdefinierten zusätzlichen Domains entfernt!
- Ihre virtuellen Webserver-Hosts so anpassen, dass sie die entsprechenden Zertifikate in /var/lib/dehydrated/certs/DOMAINJede Domain hat ein eigenes Unterverzeichnis unter /var/lib/dehydrated/certs/.
- Standardmäßig ist die letzte konfigurierte Domain (und alle Subdomains) diejenige, die für Webmin & Webshell (und Adminer, falls enthalten) funktioniert. Um dieses Verhalten zu ändern, können Sie das Hook-Skript anpassen oder einfach die Reihenfolge Ihrer Domains neu ordnen und die gewünschte Webmin & Webshell als letztes verfügbar machen.
- Anmerkung: cron job überprüft nur den Ablauf der /etc/ssl/private/cert.pemWenn Sie also das Hook-Skript anpassen, um es nicht mehr zu aktualisieren /etc/ssl/private/cert.pemSie müssen auch den Cron-Job anpassen, um den Ablauf eines Zertifikats zu überprüfen, das Sie aktualisieren. Wenn dies nicht geschieht, führt dies zu täglichen Zertifikatsaktualisierungen, die dazu führen können, dass Ihr Server vorübergehend vom Zugriff auf die Let's Encrypt-Server blockiert wird.