In diesem KB-Artikel möchte ich Ihnen zeigen, wie Sie einen Raspberry Pi verwenden können, um ein Let’s Encrypt-Zertifikat auf Ihrem USG zu installieren.
Einleitung
Wir verwenden einen Apache-Server und das Let’s Encrypt-Add-on für Apache, das auf einem Raspberry Pi läuft, um ein Zertifikat für einen bestimmten Domainnamen herunterzuladen. Außerdem nutzen wir den Pi, um dieses Zertifikat zu aktualisieren.
Wir exportieren das Zertifikat vom Pi und importieren es auf dem USG.
Wozu dient ein Zertifikat?
Mit dem Zertifikat werden Sie die Sicherheitswarnungen in Ihrem Browser los, zum Beispiel für HotSpot oder SSL VPN.
Voraussetzungen
- Sie benötigen einen Domainnamen (DN) (z. B. hotspot.hotel-mayer.de)
- Falls Sie keine statische IP haben, müssen Sie außerdem sicherstellen, dass Ihr DN aktuell gehalten wird,
Sie können dafür die DDNS-Option Ihres USG verwenden: Konfiguration > Netzwerk > DDNS - Wenn Sie Ihr USG in einem Double-NAT-Szenario verwenden, müssen Sie sicherstellen, dass HTTP und HTTPS an das USG weitergeleitet werden
- Sie müssen wissen, wie man NAT richtig verwendet
- Sie benötigen einen Raspberry Pi und eine SD-Karte für das Betriebssystem
- Einen PC mit installiertem Tera Term oder Putty und WinSCP
- Sie müssen wissen, wie man das SSH-Terminal auf dem USG verwendet
- Das USG muss mindestens Firmware-Version 4.30 haben
1. Pi und Apache einrichten
In diesem Szenario benötigen wir nur ein kommandozeilenbasiertes OS für den Pi (Raspbian Stretch Lite)
Bitte laden Sie es von der Raspberry Pi Webseite herunter und installieren Sie es wie in der Dokumentation beschrieben.
https://www.raspberrypi.org/downloads/raspbian/
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
1.1 SSH aktivieren und Passwort ändern
Jetzt müssen Sie SSH aktivieren. Legen Sie dazu die SD-Karte in Ihren Computer und erstellen Sie eine leere Datei namens „SSH“ im Stammverzeichnis der SD-Karte.
Nachdem die Installation abgeschlossen ist, verbinden Sie den Pi mit Ihrem Netzwerk, starten ihn und prüfen, ob Sie per SSH darauf zugreifen können (zum Beispiel mit Putty oder Tera Term)
Benutzer: pi
Passwort: raspberryEmpfehlung 1: Ändern Sie das Passwort wie hier beschrieben:
https://www.raspberrypi.org/documentation/configuration/raspi-config.md
Empfehlung 2: Stellen Sie sicher, dass der Pi immer dieselbe IP-Adresse erhält
1.2 Pi aktualisieren und Apache-Server installieren
Jetzt können wir nach Updates suchen und diese installieren
sudo apt update && sudo apt upgrade --yesSobald dies erledigt ist, können wir den Apache-Server installieren
sudo apt install apache2 --yesNach der Installation sollten Sie die Standard-Webseite von Apache sehen können, wenn Sie die IP-Adresse des Raspberry Pi im Browser eingeben.
Nun ist es Zeit, den Pi neu zu starten:
shutdown -rIn der Zwischenzeit richten wir die (vorübergehende) Portweiterleitung zum Pi ein.
2. Portweiterleitung
Damit die Ports 80 und 443 aus dem Internet erreichbar sind, finden Sie unten die notwendigen Schritte
2.1 HTTPS-Port des USG z. B. auf 8443 ändern
Nun können Sie das USG so erreichen: https://192.168.1.1:8443
2.2 Portweiterleitung konfigurieren für HTTP und HTTPS
Bitte prüfen Sie, ob Sie die Testseite Ihres Pi aus dem Internet erreichen können
3. Zertifikat erstellen und exportieren
Bevor wir ein Let’s Encrypt-Zertifikat erhalten können, müssen wir das Let’s Encrypt-Add-on für Apache installieren. Es hilft bei der Zertifizierung Ihres Domainnamens.
sudo apt install certbot python-certbot-apache --yes3.2 Erstes Zertifikat erzeugen
Jetzt erzeugen wir das erste Zertifikat:
sudo certbot --apacheSie müssen das Formular durchgehen und entsprechend ausfüllen. Sie werden gefragt, ob Sie eine permanente Weiterleitung wünschen.
Das Zertifikat wird angefordert und automatisch auf dem Apache-Server installiert.
3.3 Zertifikat exportieren und herunterladen
Nun können Sie das Zertifikat mit Zeitstempel exportieren.
sudo openssl pkcs12 -export -out /tmp/myusg_"$(date +"%Y-%m-%d")".p12 -inkey /etc/letsencrypt/live/[your_domain]/privkey.pem -in /etc/letsencrypt/live/[your_domain]/cert.pemSie müssen ein Passwort eingeben. Bitte merken Sie sich dieses Passwort gut, da Sie es auch für den Import auf das USG benötigen.
Um das Zertifikat vom Pi zu holen, müssen wir die Zugriffsrechte für die Datei myusg_[Datum].p12 ändern.
sudo chmod 777 myusg[date].p12Jetzt können Sie die Datei mit WinSCP aus dem /tmp-Ordner herunterladen.
4. Zertifikat auf das USG importieren
4.1 Root- und Zwischenzertifikate von Let’s Encrypt herunterladen und importieren
Damit das USG dem zuvor exportierten Zertifikat vertraut, müssen wir die Root- und Zwischenzertifikate von Let’s Encrypt importieren:
https://letsencrypt.org/certificates/
Stellen Sie sicher, dass die Zertifikate als PEM-Datei gespeichert sind (z. B. letsencryptauthorityx3.pem).
Gehen Sie nun auf dem USG zu Konfiguration > Objekte > Zertifikate > Vertrauenswürdige Zertifikate und importieren Sie die Root- und Zwischenzertifikate.
4.2 Eigenes Zertifikat importieren und aktivieren
Gehen Sie auf dem USG zu Konfiguration > Objekte > Zertifikate > Meine Zertifikate und importieren Sie das Zertifikat (Sie müssen auch das Passwort eingeben)
Gehen Sie zu Konfiguration > System > WWW, unter Serverzertifikat können Sie nun Ihr importiertes Zertifikat auswählen.
5. HTTP-zu-HTTPS-Weiterleitung richtig konfigurieren
5.1 NAT für den Pi deaktivieren
Um die Ports 80 und 443 wieder für das USG freizugeben, müssen Sie das NAT für den Pi deaktivieren. Gehen Sie zu Konfiguration > Netzwerk > NAT und suchen Sie die Regeln, die für das NAT verantwortlich sind, und deaktivieren Sie diese. Bitte löschen Sie die Regeln nicht, da Sie sie später wieder benötigen.
5.2 HTTPS-Port des USG wieder auf 443 setzen und HTTP-zu-HTTPS-Weiterleitung einrichten
Gehen Sie zu Konfiguration > System > WWW und setzen Sie den HTTPS-Port wieder auf 443. Stellen Sie sicher, dass die HTTP-Weiterleitung aktiviert ist.
5.3 IP-Adresse entfernen
Nun verwendet das USG das importierte Zertifikat. Das verbleibende "Problem" ist, dass das USG die HTTP-Weiterleitung so durchführt:
https://192.168.1.1/redirect.cgi?arip=[your_dyndns]&original_url=http://[your_dyndns]/
Dies erzeugt natürlich ein Zertifikatsproblem. Um diese Meldung endgültig loszuwerden, öffnen Sie eine SSH-Sitzung zu Ihrem USG und geben Sie folgende Befehle ein:
Router> configure terminal
Router(config)# web-auth redirect-fqdn [your_domainname]
Router(config)# write
Router(config)# exit
Router> writeDie Weiterleitung sieht nun so aus:
https://[your_domain]/redirect.cgi?arip=[your_domain]&original_url=http://[your_domain]/
Herzlichen Glückwunsch, Sie haben jetzt ein Let’s Encrypt-Zertifikat auf Ihrem USG im Einsatz.
Zertifikat erneuern
Let’s Encrypt-Zertifikate sind 90 Tage gültig. Das bedeutet, dass Sie das Zertifikat alle drei Monate erneuern müssen.
1. HTTP- und HTTPS-Ports wieder zum Pi öffnen
a) Ändern Sie die HTTPS-Ports des USG wieder (Punkt 2.1)
b) Aktivieren Sie das NAT für HTTP/HTTPS für den Pi wieder (Punkt 2.2)
2. SSH zum Pi und Zertifikat erneuern
Öffnen Sie eine SSH-Sitzung zu Ihrem Pi und geben Sie diesen Befehl ein
sudo certbot renewDies erneuert das Zertifikat für weitere 90 Tage
3. Zertifikat exportieren und importieren
Folgen Sie nun den Schritten in Punkt 3.3
4. Zertifikat auf dem USG aktualisieren
Fahren Sie mit Schritt 4.2 fort
5. Ports wieder zurücksetzen
Folgen Sie den Schritten in 5.1 und 5.2
Herzlichen Glückwunsch, Sie haben das Let’s Encrypt-Zertifikat auf Ihrem USG erneuert.
Haftungsausschluss: Bitte haben Sie Verständnis dafür, dass dies nur eine Beschreibung ist, wie Sie ein Let’s Encrypt-Zertifikat auf Ihrem USG erhalten. Wenn etwas mit dem Raspberry Pi nicht stimmt, können wir keinen Support für Probleme mit dem Pi anbieten!

Kommentare
0 KommentareBitte melden Sie sich an, um einen Kommentar zu hinterlassen.