Launcher Produkte Bitnami Dokumentationimaxe CLI Blog Kontakt
imaxe tls zertifikate v1.0.0

HTTPS-Zertifikate, ohne Schmerzen

Stelle kostenlose Let's Encrypt-Zertifikate für deinen Server aus, erneuere sie und lade sie neu, ohne den Dienst zu unterbrechen. Ein Befehl bringt es in Gang; ab dann erneuert es sich von selbst.

$ imaxe tls issue app.ejemplo.com --email [email protected]
Version
v1.0.0
Unterbefehle
6
Config
/etc/imaxe/tls.yml
Erfordert root
ja
Erneuerung
auto · timer

Was dieses Modul tut #

Ein TLS-Zertifikat ist das, was http:// in https:// verwandelt: es verschlüsselt die Verbindung zwischen deinen Besuchern und dem Server und sorgt dafür, dass der Browser das Schloss anzeigt statt einer „nicht sicher"-Warnung.

Das Modul tls übernimmt den gesamten Lebenszyklus dieses Zertifikats mithilfe von certbot: es fordert es bei Let's Encrypt an (einer kostenlosen, gut anerkannten Zertifizierungsstelle), weist nach, dass die Domain dir gehört, über die ACME-Challenge, installiert das Zertifikat dort, wo dein Webserver es erwartet, und erneuert es automatisch, bevor es abläuft — ohne dass du daran denken musst.

Bevor du beginnst

Deine Domain (z. B. app.ejemplo.com) muss per DNS auf die IP dieses Servers zeigen, und Port 80 muss für die HTTP-01-Challenge erreichbar sein. Andernfalls schlägt die Ausstellung im Validierungsschritt fehl.

SchnellstartAufgaben Schritt für Schritt

Häufige Aufgaben #

Wähle, was du tun möchtest. Jedes Rezept bringt den Befehl schon fertig mit — einfach deine eigene Domain und E-Mail einsetzen und Kopieren drücken.

1

Mein erstes Zertifikat ausstellen

Hol dir in einer Minute das HTTPS-Schloss für deine Domain.

Verbinde dich per SSH als Benutzer ubuntu mit deinem Server.

Führe den Befehl aus und setze deine eigene Domain und E-Mail ein (die E-Mail wird nur genutzt, um dich zu warnen, wenn etwas bald abläuft):

Terminal
$ sudo imaxe tls issue app.ejemplo.com --email [email protected]

Warte ein paar Sekunden. Du siehst den Fortschritt der Challenge und am Ende das Ablaufdatum.

Deine Seite lädt jetzt über https:// mit dem Schloss. Die automatische Erneuerung ist aktiviert — du musst nichts weiter tun.
2

Sehen, welche existieren und wann sie ablaufen

Prüfe den Zustand deiner Zertifikate auf einen Blick.

Eine schnelle Übersicht über den Gesamtstatus und den Erneuerungs-Timer:

Terminal
$ sudo imaxe tls status

Willst du das Detail Domain für Domain, mit verbleibenden Tagen und dem fullchain-Pfad? Nutze list:

Terminal
$ sudo imaxe tls list
Siehst du eine Domain mit wenigen verbleibenden Tagen, springe zum Rezept Eine Erneuerung erzwingen.
3

Eine Erneuerung erzwingen

Sie ist normalerweise automatisch, aber du kannst sie bei Bedarf vorziehen.

Erneuere alle Zertifikate, die kurz vor dem Ablauf stehen (genau das tut der Timer):

Terminal
$ sudo imaxe tls renew

Willst du es zuerst proben, ohne die Festplatte anzurühren, oder erneuern, auch wenn noch Tage übrig sind? Füge --dry-run oder --force hinzu:

Terminal
$ sudo imaxe tls renew --dry-run
$ sudo imaxe tls renew --force
Der Webserver lädt sich selbst mit dem neuen Zertifikat neu. Deine Besucher bemerken keine Unterbrechung.
4

Ein Zertifikat widerrufen

Mache ein Zertifikat bei der Zertifizierungsstelle ungültig (z. B. wenn der Schlüssel geleakt ist).

Widerrufe das Zertifikat einer Domain bei Let's Encrypt und gib den Grund an, wenn du ihn kennst:

Terminal
$ sudo imaxe tls revoke app.ejemplo.com --reason keycompromise
Das Zertifikat ist ab sofort nicht mehr gültig. Wird die Domain noch genutzt, stelle mit issue ein neues aus.
5

Ein Zertifikat von der Festplatte löschen

Höre auf, eine Domain zu verwalten, die du nicht mehr nutzt.

Entferne das Zertifikat und seine Schlüssel von der Festplatte. Hinweis: dies widerruft es nicht bei der Zertifizierungsstelle — nutze dafür zuerst revoke.

Terminal
$ sudo imaxe tls delete tienda.ejemplo.com
Die Domain verschwindet aus imaxe tls list und ihre automatische Erneuerung stoppt.
Hat etwas nicht funktioniert?

Das häufigste Problem ist, dass sich DNS noch nicht verbreitet hat oder Port 80 geschlossen ist. Warte ein paar Minuten und versuche es erneut. Bleibt es bestehen, probiere zuerst den Testmodus mit --staging (siehe die Referenz), damit du dein Kontingent an Versuchen nicht aufbrauchst.

CLI-ReferenzBefehle, Flags und Dateien

Synopsis #

Verwendung
imaxe tls <subcomando> [<dominio>...] [--email CORREO] [flags]

Unterbefehle, die Zertifikate berühren, erfordern root-Rechte (nutze sudo), da sie nach /etc/imaxe/ schreiben und Systemdienste neu laden. Füge --json zu list oder status hinzu, um maschinenlesbare Ausgabe für das Scripting zu erhalten.

Unterbefehle #

UnterbefehlWas er tutRelevante Flags
issueStellt ein Zertifikat für eine oder mehrere Domains aus und löst die ACME-Challenge.--email, --webroot, --standalone, --staging
renewErneuert Zertifikate kurz vor dem Ablauf und lädt den Webserver neu. Für einen Timer geeignet.--dry-run, --force
listListet die verwalteten Zertifikate mit Tagen bis zum Ablauf und dem fullchain-Pfad auf.--json
statusZusammenfassung: Anzahl der Zertifikate, die kurz vor dem Ablauf stehenden und der Status des Erneuerungs-Timers.--json
revokeWiderruft ein Zertifikat nach Domain bei der Zertifizierungsstelle (ACME).--reason
deleteLöscht das Zertifikat und seine Schlüssel von der Festplatte. Widerruft nicht bei ACME.

Argumente und Flags #

FlagTypStandardBeschreibung
<dominio> erf.string…Eine oder mehrere Domains für das Zertifikat. Bei issue ist die erste die primäre (CN); die restlichen sind SANs. Bei revoke/delete die Domain, auf der operiert wird.
--emailstringtls.ymlKontakt-E-Mail für das ACME-Konto. Beim ersten issue erforderlich; danach wird die aus tls.yml wiederverwendet.
--webrootpath/var/www/htmlWurzelverzeichnis für die HTTP-01-Challenge. Die Standardmethode.
--standaloneboolfalseNutzt den in certbot integrierten Server statt eines Webroots. Erfordert, dass Port 80 frei ist.
--stagingboolfalseNutzt die Testumgebung von Let's Encrypt (zählt nicht zum Rate-Limit). Dem Zertifikat wird nicht vertraut.
--dry-runboolfalseBei renew simuliert die Erneuerung, ohne die Festplatte anzurühren.
--forceboolfalseBei renew erneuert, auch wenn der Ablauf nicht nahe ist.
--reasonenumunspecifiedBei revoke: unspecified, keycompromise, superseded, cessationofoperation.
--jsonboolfalseBei list/status gibt das Ergebnis als JSON über stdout aus.

Dateien und Pfade #

PfadInhalt
/etc/imaxe/tls.ymlKonfiguration des Moduls: Standard-E-Mail, Methode (webroot/standalone), Webroot, Staging, automatische Erneuerung und Reload-Hook.
/etc/letsencrypt/live/<dominio>/Zertifikat (fullchain.pem) und privater Schlüssel (privkey.pem), verwaltet von certbot.
/var/log/imaxe/tls.logStrukturiertes Log jeder Ausstellung, Erneuerung und Widerrufung.
imaxe-tls.timersystemd-Timer, der renew periodisch auslöst.

Beispiel für tls.yml:

/etc/imaxe/tls.yml
email: [email protected]
default_method: webroot
webroot: /var/www/html
staging: false
auto_renew: true
reload_hook: systemctl reload nginx

Exit-Codes und Logs #

Jede Ausführung liefert einen Code, den du mit echo $? prüfen kannst — nützlich zum Verketten in Skripten:

0OKOperation ohne ausstehende Änderungen abgeschlossen.
1ERRNicht klassifizierter allgemeiner Fehler. Prüfe das Log.
2USAGEUngültige oder fehlende Argumente.
3CHALLENGEDie ACME-Validierung schlug fehl (DNS/HTTP).
4RATELIMITLimit von Let's Encrypt erreicht.
5RELOADAusstellung OK, aber das Neuladen des Webservers schlug fehl.

Verfolge das Log live, während du Fehler suchst:

Terminal
$ sudo journalctl -u imaxe-tls -f
$ sudo tail -f /var/log/imaxe/tls.log

Fortgeschrittene Beispiele #

Mehrere Domains in einem einzigen Zertifikat

Die erste Domain ist die primäre; die folgenden werden als SANs hinzugefügt, alle in einem einzigen Zertifikat:

Terminal
$ sudo imaxe tls issue ejemplo.com www.ejemplo.com \
    --email [email protected]

Ein sicherer Test vor der Produktion

Validiere die gesamte Kette gegen die Testumgebung, damit du dein echtes Kontingent nicht aufbrauchst. Mit --standalone brauchst du keinen konfigurierten Webserver:

Terminal
$ sudo imaxe tls issue app.ejemplo.com \
    --email [email protected] --standalone --staging \
  || echo "falló con código $?"

Fehlerbehebung #

SymptomWahrscheinliche UrsacheLösung
Liefert CHALLENGE (Code 3)Die Domain löst nicht auf diesen Host auf oder Port 80 ist geschlossen.Prüfe den A/AAAA-Eintrag und öffne Port 80 in der Security Group; versuche es erneut.
Liefert RATELIMIT (Code 4)Zu viele Ausstellungen derselben Domain in einer Woche.Nutze --staging zum Testen; warte, bis das Zeitfenster wieder frei wird.
HTTPS lädt, aber mit einer WarnungMit --staging ausgestellt: dem Zertifikat wird nicht vertraut.Stelle ohne --staging neu aus, um ein gültiges zu erhalten.
Liefert RELOAD (Code 5)Der reload_hook verweist auf einen nicht existierenden Dienst.Passe reload_hook in tls.yml an und führe renew erneut aus.

Steckst du beim Modul TLS fest?

Schreib uns mit der Ausgabe von «imaxe <module> status --json» und wir antworten dir schnell.

Support kontaktieren