Importera ett Lets Encrypt-certifikat till USG

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

  1. Du behöver ett domännamn (DN) (t.ex. hotspot.hotel-mayer.de)
  2. 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
  3. Om du använder din USG i ett dubbel NAT-scenario måste du se till att HTTP och HTTPS vidarebefordras till USG
  4. Du behöver kunna använda NAT på rätt sätt
  5. Du behöver en Raspberry Pi och ett SD-kort för operativsystemet
  6. En PC med Tera Term eller Putty och WinSCP installerade
  7. Du behöver kunna använda SSH-terminalen på USG
  8. 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: raspberry

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

När detta är klart kan vi installera Apache-servern

sudo apt install apache2 --yes

Efter installationen ska du kunna se Apaches standardsida genom att surfa till Raspberrys IP.

mceclip0.png

Nu är det dags att starta om Pi:

shutdown -r

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

3.2 Generera det första certifikatet

Nu genererar vi det första certifikatet:

sudo certbot --apache

Du behöver gå igenom formuläret och fylla i det korrekt. Du kommer att bli tillfrågad om du vill omdirigera permanent.

mceclip1.png

 mceclip2.png

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

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

mceclip3.png

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

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

mceclip4.png

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

Nu kommer omdirigeringen se ut så här:

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

mceclip5.png

 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 renew

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

Artiklar i detta avsnitt

Var denna artikel till hjälp?
0 av 3 tyckte detta var till hjälp
Dela

Kommentarer

0 kommentarer

logga in för att lämna en kommentar.