Ein Lets Encrypt-Zertifikat auf dem USG importieren

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

  1. Sie benötigen einen Domainnamen (DN) (z. B. hotspot.hotel-mayer.de)
  2. 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
  3. Wenn Sie Ihr USG in einem Double-NAT-Szenario verwenden, müssen Sie sicherstellen, dass HTTP und HTTPS an das USG weitergeleitet werden
  4. Sie müssen wissen, wie man NAT richtig verwendet
  5. Sie benötigen einen Raspberry Pi und eine SD-Karte für das Betriebssystem
  6. Einen PC mit installiertem Tera Term oder Putty und WinSCP
  7. Sie müssen wissen, wie man das SSH-Terminal auf dem USG verwendet
  8. 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: raspberry

Empfehlung 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 --yes

Sobald dies erledigt ist, können wir den Apache-Server installieren

sudo apt install apache2 --yes

Nach der Installation sollten Sie die Standard-Webseite von Apache sehen können, wenn Sie die IP-Adresse des Raspberry Pi im Browser eingeben.

mceclip0.png

Nun ist es Zeit, den Pi neu zu starten:

shutdown -r

In 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 --yes

3.2 Erstes Zertifikat erzeugen

Jetzt erzeugen wir das erste Zertifikat:

sudo certbot --apache

Sie müssen das Formular durchgehen und entsprechend ausfüllen. Sie werden gefragt, ob Sie eine permanente Weiterleitung wünschen.

mceclip1.png

 mceclip2.png

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.pem

Sie 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.

mceclip3.png

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].p12

Jetzt 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]/

mceclip4.png

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> write

Die Weiterleitung sieht nun so aus:

https://[your_domain]/redirect.cgi?arip=[your_domain]&original_url=http://[your_domain]/

mceclip5.png

 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 renew

Dies 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!

Beiträge in diesem Abschnitt

War dieser Beitrag hilfreich?
0 von 3 fanden dies hilfreich
Teilen

Kommentare

0 Kommentare

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.