Nginx. Ausstellung eines SSL-Zertifikats
Das BeAdmin-Panel kann kostenlose SSL-Zertifikate von Let's Encrypt für virtuelle Nginx-Hosts ausstellen und hält sie selbstständig aktuell. Der Umgang mit dem Zertifikat unterscheidet sich je nach Modus des virtuellen Hosts — Builder- oder Expertenmodus; in diesem Artikel werden beide Szenarien sowie die manuelle Ausstellung und Neuausstellung ausführlich beschrieben.
Erstellen eines virtuellen Hosts im Builder-Modus
Im Builder-Modus stellt das Panel das Zertifikat beim Anlegen des virtuellen Hosts automatisch aus, sofern im Formular der Schalter „HTTPS verwenden (Port 443)“ aktiviert ist. In diesem Fall wird das Zertifikat direkt während des Erstellungsvorgangs angefordert. Wenn Sie HTTP (Port 80) wählen oder manuell einen anderen Port angeben, wird kein Zertifikat angefordert.


Schlägt die Zertifikatsausstellung fehl, wird der Host trotzdem angelegt und läuft mit einem selbstsignierten Zertifikat. Den Fehler meldet das Panel in einer ausführlichen Benachrichtigung oben rechts — konkrete Meldungen und der Umgang damit sind im Artikel Behebung von ACME-Fehlern bei der Ausstellung eines SSL-Zertifikats beschrieben.
Erstellen eines virtuellen Hosts im Expertenmodus
Im Expertenmodus wird das Zertifikat nicht automatisch ausgestellt, auch wenn die Zeile listen 443 ssl in der Konfiguration vorhanden ist. Um ein Zertifikat zu erhalten, müssen Sie nach dem Speichern des Hosts gesondert auf die Ausstellungsschaltfläche klicken (siehe nächster Abschnitt).
Beim ersten Öffnen des Editors im Erstellungsformular wird das Feld mit einer Startvorlage gefüllt, die zwei server-Blöcke enthält — HTTP auf 80 und HTTPS auf 443. Damit die manuelle Ausstellung funktioniert, müssen drei Fragmente in der Vorlage erhalten bleiben:
- Ein
server-Block auf Port 80 mit korrektemserver_name. Let's Encrypt prüft den Domainbesitz über HTTP-01, und die Prüfanfrage kommt genau auf Port 80 an. - Innerhalb des Port-80-Blocks —
location /.well-known/acme-challenge { proxy_pass http://127.0.0.1:5180; ... }mit dem Hinweis# DO NOT REMOVE — required for Let's Encrypt issuance via "Renew SSL". Über diesen laufen die Prüfanfragen von Let's Encrypt. - Im Port-443-Block —
ssl_certificate /etc/ssl/beadmin/<server_name>/<server_name>.crtund das zugehörigessl_certificate_keymit dem Hinweis# DO NOT CHANGE — the panel writes the issued cert to these paths. Unter diesen Pfaden speichert das Panel das ausgestellte Zertifikat.
Wenn Sie die Konfiguration von Grund auf schreiben oder eines dieser Fragmente entfernt haben — fügen Sie sie wieder ein, sonst schlägt die manuelle Ausstellung mit einem Fehler fehl.
⚠️ Eigene Pfade zum Zertifikat im Expertenmodus
Das ausgestellte Zertifikat wird stets unter festen Pfaden gespeichert — /etc/ssl/beadmin/<server_name>/<server_name>.crt und dem zugehörigen .key. Die Hostkonfiguration wird bei der Ausstellung nicht ausgewertet, und die Pfade aus den Direktiven ssl_certificate und ssl_certificate_key werden nicht berücksichtigt.
Wenn diese Direktiven in Ihrer Konfiguration auf eine andere Stelle zeigen, läuft die Ausstellung ohne sichtbare Fehler durch: die Schaltfläche meldet Erfolg, in der Datenbank erscheint ein neues Zertifikat, die Datei landet unter dem Standardpfad von BeAdmin — Nginx liest das Zertifikat jedoch aus dem von Ihnen angegebenen Pfad und liefert weiterhin das alte aus, sodass es von außen so aussieht, als hätte die Ausstellung nichts bewirkt. Damit das neue Zertifikat tatsächlich greift, stellen Sie entweder in ssl_certificate* die Standardpfade aus der Startvorlage wieder her oder kopieren Sie nach jeder Ausstellung das Zertifikat manuell vom BeAdmin-Pfad auf Ihren und laden Nginx neu.
Wie man ein Zertifikat manuell ausstellt oder neu ausstellt
Die Ausstellung oder Neuausstellung eines Zertifikats lässt sich an diesen Stellen anstoßen:
- In der Seitenleiste des Nginx-Moduls — über das Pfeilsymbol rechts neben dem Hostnamen. Auf dem Desktop erscheint es nur, wenn Sie die Zeile überfahren.
- Im Bereich „Websites & Domains“ — in der Zeile der Domain. Hat die Domain eine Website, klappen Sie zuerst deren Zeile auf. Gibt es noch kein Zertifikat, klicken Sie auf „Zertifikat ausstellen“. Nach der Ausstellung zeigt die Zeile eine Markierung mit dem Ablaufdatum — „SSL · bis …“ —, und anstelle der Schaltfläche zum Ausstellen erscheint „Zertifikat neu ausstellen“. Mehr dazu im Artikel Websites & Domains. Domains und SSL-Zertifikate.


Die Schaltfläche tut überall dasselbe. Es gibt keinen Bestätigungsdialog: die Ausstellung startet sofort beim Klick. Beschriftung oder Tooltip der Schaltfläche nennen die aktuelle Aktion — „Zertifikat ausstellen“, wenn noch kein Zertifikat ausgestellt wurde, und „Zertifikat neu ausstellen“, wenn bereits eines vorhanden ist. Nach erfolgreicher Ausstellung oder Neuausstellung lädt das Panel die Nginx-Konfiguration neu, und die Website liefert sofort das neue Zertifikat aus.
In der Seitenleiste des Nginx-Moduls funktioniert das Symbol im Builder-Modus nur für Hosts auf Port 443 — bei den übrigen erscheint beim Überfahren der Tooltip „Port 443 (HTTPS) erforderlich“. Im Expertenmodus ist es bei jeder Konfiguration aktiv. Solange die Ausstellung läuft, ist die Schaltfläche inaktiv und zeigt eine Ladeanzeige.
Anfragelimit auf Seiten von Let's Encrypt
Let's Encrypt begrenzt die Zahl der Anfragen pro IP-Adresse, nicht pro Domain — das Limit können daher auch andere Server mit derselben externen Adresse ausschöpfen. Ist das Limit erreicht oder hat Let's Encrypt eine Störung, wiederholt das Panel die Ausstellung automatisch über eine andere Zertifizierungsstelle. Den Fehler „Zu viele Anfragen zur Ausstellung eines SSL-Zertifikats“ sehen Sie, wenn die Ausstellung auch dort nicht gelungen ist. Mehr dazu im Artikel Behebung von ACME-Fehlern bei der Ausstellung eines SSL-Zertifikats.
Warten Sie das Ergebnis ab und klicken Sie die Schaltfläche nicht erneut, bevor Sie geklärt haben, was beim letzten Mal schiefgelaufen ist.
Was beim Wechsel des Modus mit dem Zertifikat passiert
Beim Wechsel zwischen Builder- und Expertenmodus bleibt das Zertifikat erhalten — in beide Richtungen. Im Wechseldialog wird das Zertifikat nicht erwähnt, und das ist normal: es passiert nichts mit ihm.
Auch die ursprüngliche Konfiguration geht beim Wechsel vom Experten- zurück in den Builder-Modus nicht verloren — Sie können durch erneutes Umschalten dorthin zurückkehren. Der Builder-Modus zeigt nach der Rückkehr seinen zuletzt dort gespeicherten Satz an Feldern.
Was schiefgehen kann
Nach einem Ausstellungsversuch ist der Host immer noch auf einem selbstsignierten Zertifikat
Wahrscheinlich ist der vorherige Versuch mit einem Fehler abgebrochen. Klicken Sie auf „Zertifikat neu ausstellen“ und lesen Sie die Meldung — konkrete Formulierungen sind im Artikel Behebung von ACME-Fehlern bei der Ausstellung eines SSL-Zertifikats aufgeschlüsselt.
Nach der Ausstellung oder Neuausstellung zeigt der Browser weiterhin das alte Zertifikat
Das Panel meldet Erfolg, im Browser bleibt jedoch die Warnung vor einer unsicheren Verbindung (nach der ersten Ausstellung) oder die alten Daten auf dem Zertifikat (nach einer Neuausstellung). Prüfen können Sie das mit dem Befehl openssl s_client -connect <ihre-domain>:443 </dev/null 2>/dev/null | openssl x509 -noout -dates — hat sich notBefore nicht aktualisiert, liegt das neue Zertifikat zwar bereits auf der Festplatte, Nginx arbeitet aber noch mit dem alten. Öffnen Sie im Panel das Nginx-Modul und klicken Sie auf „Konfiguration neu laden“ — danach liefert die Website das aktuelle Zertifikat aus.
Expertenmodus: das Zertifikat „wurde ausgestellt“, Nginx liefert aber das alte aus
Wahrscheinlich verweisen die Direktiven ssl_certificate und ssl_certificate_key in Ihrer Konfiguration auf einen anderen Pfad als den Standardpfad von BeAdmin — Nginx liest das Zertifikat von dort und sieht das neue nicht. Es gibt zwei Lösungen: entweder stellen Sie in ssl_certificate* die Standardpfade aus der Startvorlage wieder her oder kopieren Sie nach jeder Ausstellung das Zertifikat manuell vom Standardpfad auf Ihren und laden Nginx neu. Dasselbe Szenario ist in der Warnung zu den eigenen Pfaden weiter oben ausführlicher beschrieben.
Weiterführende Links
- Behebung von ACME-Fehlern bei der Ausstellung eines SSL-Zertifikats — Aufschlüsselung konkreter Let's-Encrypt-Fehlermeldungen.
- Nginx. Virtuelle Hosts im Expertenmodus — Startvorlage, Wechsel zwischen den Modi, manuelle Anbindung von PHP-FPM.
- Nginx. Arbeiten mit virtuellen Hosts — Erstellen und Bearbeiten eines Hosts im Builder-Modus.