Mein Nextcloud-Server läuft auf einem Raspberry Pi unter Raspbian 9 (stretch) mit einem Nginx-Webserver und Let’s-Encrypt-Zertifikat. Letzteres muss regelmäßig erneuert werden.
Da der Server aus dem Web zugänglich ist, habe ich den Port verschleiert – statt 443 verwende ich 32123. Die Portumleitung habe ich in meiner Fritzbox (Fritz-OS 7.0) unter Internet / Freigaben / Portfreigaben konfiguriert: Der externe Port 32123 wird auf „Port am Gerät“ 443 bis 443 (tcp) umgeleitet. Dadurch ist der Server unter https://meine.domain.org:32123 erreichbar.
Für den Webserver habe ich ein Let’s-Encrypt-Zertifikat eingerichtet.
Nun muss ein Let’s-Encrypt-Zertifikat aller drei Monate erneuert werden. Als ACME-Client verwende ich certbot. Leider oder zum Glück ist die Entwicklung dieses Tools sehr lebendig, was mich jedes Mal viel Aufwand kostet, ein funktionierendes Verfahren herauszufinden.
Momentan arbeitet der Client (am 2019-02-20 ist es certbot 0.28.0) mit dem Verfahren HTTP-01 zur Prüfung der Inhaberschaft der Domäne. Dieses arbeitet auf Port 80. Das macht das Aktualisieren des Zertifikates etwas umständlich.
Mein Verfahren ist wie folgt:
1) In Fritzbox Portweiterleitung ändern
Weiterleitung Port 32123/tcp auf 443 deaktivieren und Weiterleitung Port 80/tcp auf 80 + 443/tcp auf 443 aktivieren (unter Internet / Freigaben / Portfreigaben)
2) Webserver stoppen
sudo systemctl stop nginx.service
3) Zertifikats-Aktualisierung testen (Bei mir ging in der Vergangenheit an dieser Stelle zu viel schief; man hat pro Domäne und Stunde 5 Fehlversuche der Validierung):
sudo certbot --standalone -d meine.domain.org certonly --dry-run
4) Zertifikats-Aktualisierung durchführen
sudo certbot --standalone -d meine.domain.org certonly
5) Webserver starten
sudo systemctl start nginx.service
6) In Fritzbox Portweiterleitung zurück ändern
Weiterleitung Port 80/tcp auf 80 + 443/tcp auf 443 deaktivieren und 32123/tcp auf 443 aktivieren (unter Internet / Freigaben / Portfreigaben)
7) Zertifikat im Browser prüfen
In Firefox 65 wie folgt:
- Nexcloud-Seite aufrufen (https://meine.domain.org:32123)
- auf grünes Schloss-Symbol in der Adressleiste klicken
- rechts neben „Verbindung“ auf den Pfeil klicken
- „Weitere Informationen“ anklicken
- Im neuen Fenster sollte hinter „Webseite:“ die eigene Domäne „meine.domain.org“ stehen, hinter „Validiert von:“ „Let’s Encrypt“ und hinter „Gültig bis:“ steht, bis wann alles vorstehende wieder zu tun ist. 🙂