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 — Konstruktor oder Experte; in diesem Artikel werden beide Szenarien sowie die manuelle Ausstellung und Neuausstellung ausführlich beschrieben.
Erstellen eines virtuellen Hosts im Konstruktormodus
Im Konstruktormodus 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 zwei 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 und Domains» — über dasselbe Symbol neben dem Host; hier sind außerdem Ausstellungsdatum und Laufzeit des aktuellen Zertifikats sichtbar.

Beide Schaltflächen tun dasselbe. Es gibt keinen Bestätigungsdialog: die Ausstellung startet sofort beim Klick. Beim Überfahren der Schaltfläche erscheint ein Tooltip mit der aktuellen 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 selbstständig neu, und die Website liefert sofort das neue Zertifikat aus.
Im Konstruktormodus funktioniert die Schaltfläche nur für Hosts auf Port 443 — bei den übrigen erscheint beim Überfahren der Tooltip «Port 443 (HTTPS) erforderlich». Im Expertenmodus ist die Schaltfläche bei jeder Konfiguration aktiv. Solange die Ausstellung läuft, zeigt das Symbol eine Ladeanzeige.
Anfragelimit auf Seiten von Let's Encrypt
Jeder Klick auf die Ausstellungsschaltfläche ist eine eigene Anfrage an Let's Encrypt, und Let's Encrypt hat ein gemeinsames Limit für eine Domain und alle ihre Subdomains. Mehrere Klicks in Folge laufen schnell in dieses Limit: das Panel zeigt den Fehler «Zu viele Anfragen zur Ausstellung eines SSL-Zertifikats» — die Ausstellung ist vorübergehend nicht verfügbar.
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 Konstruktor- 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 Konstruktormodus nicht verloren — Sie können durch erneutes Umschalten dorthin zurückkehren. Der Konstruktor 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 Konstruktormodus.