I denna kunskapsartikel vill jag visa dig hur du kan använda en Raspberry Pi för att få ett Let’s Encrypt-certifikat installerat på din USG.
Introduktion
Vi kommer att använda en Apache-server och Let’s Encrypt-tillägget för Apache som körs på en Raspberry Pi för att ladda ner ett certifikat för ett specifikt domännamn. Vi kommer också att använda Pi för att uppdatera detta certifikat.
Vi kommer att exportera certifikatet från Pi och importera det till USG.
Vad är nyttan med ett certifikat?
Med certifikatet slipper du säkerhetsvarningar i din webbläsare. Till exempel för HotSpot eller SSL VPN.
Krav
- Du behöver ett domännamn (DN) (t.ex. hotspot.hotel-mayer.de)
- Om du inte har en statisk IP måste du också se till att ditt DN hålls uppdaterat,
du kan använda DDNS-alternativet i din USG: Konfiguration > Nätverk > DDNS - Om du använder din USG i ett dubbel NAT-scenario måste du se till att HTTP och HTTPS vidarebefordras till USG
- Du behöver kunna använda NAT på rätt sätt
- Du behöver en Raspberry Pi och ett SD-kort för operativsystemet
- En PC med Tera Term eller Putty och WinSCP installerade
- Du behöver kunna använda SSH-terminalen på USG
- USG måste ha minst firmwareversion 4.30
1. Ställ in Pi och Apache
I detta scenario behöver vi bara ett kommandoradsbaserat OS för Pi (Raspbian Stretch Lite)
ladda ner det från Raspberry Pi:s webbplats och installera det som beskrivs i dokumentationen.
https://www.raspberrypi.org/downloads/raspbian/
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
1.1 Aktivera SSH och ändra lösenordet
Nu behöver du aktivera SSH. Lägg därför SD-kortet i din dator och skapa en tom fil med namnet “SSH” i SD-kortets rotmapp.
När installationen är klar, anslut Pi till ditt nätverk, starta den och kontrollera om du kan nå den via SSH (t.ex. med Putty eller Tera Term)
User: pi
Password: raspberryRekommendation 1: ändra lösenordet enligt beskrivningen här:
https://www.raspberrypi.org/documentation/configuration/raspi-config.md
Rekommendation 2: Se till att Pi alltid får samma IP-adress
1.2 Uppdatera Pi och installera Apache-server
Nu kan vi söka efter och installera uppdateringar
sudo apt update && sudo apt upgrade --yesNär detta är klart kan vi installera Apache-servern
sudo apt install apache2 --yesEfter installationen ska du kunna se Apaches standardsida genom att surfa till Raspberrys IP.
Nu är det dags att starta om Pi:
shutdown -rUnder tiden ställer vi in (temporär) portvidarebefordran till Pi.
2. Portvidarebefordran
För att ha portarna 80 och 443 öppna mot internet. Nedan hittar du hur du utför de nödvändiga stegen
2.1 Ändra HTTPS-porten på USG till t.ex. 8443
Nu kan du nå USG så här: https://192.168.1.1:8443
2.2 Konfigurera portvidarebefordran för HTTP och HTTPS
Kontrollera att du kan nå Pi:s testsida från internet
3. Skapa och exportera ett certifikat
Innan vi kan få ett Let's Encrypt-certifikat måste vi installera Let’s Encrypt-tillägget för Apache. Det hjälper till att certifiera ditt domännamn.
sudo apt install certbot python-certbot-apache --yes3.2 Generera det första certifikatet
Nu genererar vi det första certifikatet:
sudo certbot --apacheDu behöver gå igenom formuläret och fylla i det korrekt. Du kommer att bli tillfrågad om du vill omdirigera permanent.
Certifikatet kommer att begäras och automatiskt installeras på Apache-servern.
3.3 Exportera certifikatet och ladda ner det
Nu kan du exportera certifikatet med en tidsstämpel.
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.pemDu behöver ange ett lösenord. Se till att du kommer ihåg lösenordet, då du också behöver det för importen till USG.
För att hämta certifikatet från Pi måste vi ändra åtkomsträttigheterna för filen myusg_[datum].p12.
sudo chmod 777 myusg[date].p12Nu kan du hämta filen med WinSCP från /tmp-mappen.
4. Importera certifikatet till USG
4.1 Ladda ner och importera Let's Encrypts root- och mellanliggande certifikat
För att få USG att lita på certifikatet vi exporterade tidigare måste vi importera root- och mellanliggande certifikat från Let's Encrypt:
https://letsencrypt.org/certificates/
Se till att certifikaten sparas som pem-filer (t.ex. letsencryptauthorityx3.pem).
Gå nu på USG till Konfiguration > Objekt > Certifikat > Betrodda certifikat och importera root- och mellanliggande certifikaten.
4.2 Importera och aktivera ditt certifikat
På USG går du till Konfiguration > Objekt > Certifikat > Mina certifikat och importerar certifikatet (du måste även ange lösenordet)
Gå till Konfiguration > System > WWW under Server Certificate kan du nu välja ditt importerade certifikat.
5. Konfigurera HTTP till HTTPS-omdirigering korrekt
5.1 Inaktivera NAT för Pi
För att frigöra portarna 80 och 443 igen för USG behöver du inaktivera NAT för Pi. Gå till Konfiguration > Nätverk > NAT och hitta och inaktivera reglerna som ansvarar för NAT. Vänligen ta inte bort reglerna, eftersom du kommer behöva dem senare igen.
5.2 Sätt tillbaka USG:s HTTPS-port till 443 och ställ in HTTP till HTTPS-omdirigering
Gå till Konfiguration > System > WWW och sätt HTTPS-porten tillbaka till 443. Se till att HTTP-omdirigering är aktiverad.
5.3 Bli av med IP-adressen
Nu kommer USG använda det importerade certifikatet. Det "problem" som återstår är att USG omdirigerar HTTP till HTTPS så här:
https://192.168.1.1/redirect.cgi?arip=[your_dyndns]&original_url=http://[your_dyndns]/
Detta skapar naturligtvis ett certifikatproblem. För att slutligen bli av med detta meddelande behöver du öppna en SSH-session till din USG och skriva följande kommandon:
Router> configure terminal
Router(config)# web-auth redirect-fqdn [your_domainname]
Router(config)# write
Router(config)# exit
Router> writeNu kommer omdirigeringen se ut så här:
https://[your_domain]/redirect.cgi?arip=[your_domain]&original_url=http://[your_domain]/
Grattis, du har nu ett Let's Encrypt-certifikat som körs på din USG.
Förnya certifikatet
Let's Encrypt-certifikat är giltiga i 90 dagar. Det innebär att du måste förnya certifikatet var tredje månad.
1. Öppna HTTP- och HTTPS-portarna till Pi igen
a) ändra HTTPS-portarna på USG igen (punkt 2.1)
b) aktivera NAT för HTTP/HTTPS för Pi igen (punkt 2.2)
2. SSH till Pi och förnya certifikatet
Öppna en SSH-session till din Pi och skriv detta kommando
sudo certbot renewDetta förnyar certifikatet för ytterligare 90 dagar
3. Exportera och importera certifikatet
Följ nu stegen i punkt 3.3
4. Uppdatera certifikatet på USG
Fortsätt nu med steg 4.2
5. Ändra portarna tillbaka
Följ stegen i 5.1 och 5.2
Grattis, du har nu förnyat Let's Encrypt-certifikatet på din USG.
Ansvarsfriskrivning: Vänligen förstå att detta endast är en beskrivning av hur man får ett Let's Encrypt-certifikat på din USG. Om något är fel med Raspberry Pi, vänligen förstå att vi inte kan ge support för några problem med Pi!

Kommentarer
0 kommentarerlogga in för att lämna en kommentar.