I denne vidensbaseartikel vil jeg vise dig, hvordan du kan bruge en Raspberry Pi til at få installeret et Let’s Encrypt-certifikat på din USG.
Introduktion
Vi vil bruge en Apache-server og Let’s Encrypt-tilføjelsen til Apache, som kører på en Raspberry Pi, til at downloade et certifikat til et specifikt domænenavn. Vi vil også bruge Pi’en til at opdatere dette certifikat.
Vi vil eksportere certifikatet fra Pi’en og importere det til USG’en.
Hvad er brugen af et certifikat?
Med certifikatet slipper du for sikkerhedsadvarsler i din browser, for eksempel for HotSpot eller SSL VPN.
Krav
- Du skal have et domænenavn (DN) (for eksempel hotspot.hotel-mayer.de)
- Hvis du ikke har en statisk IP, skal du også sikre, at dit DN holdes opdateret,
du kan bruge DDNS-funktionen på din USG: Konfiguration > Netværk > DDNS - Hvis du bruger din USG i et dobbelt NAT-scenarie, skal du sikre, at HTTP og HTTPS videresendes til USG’en
- Du skal vide, hvordan man bruger NAT korrekt
- Du skal have en Raspberry Pi og et SD-kort til OS
- En PC med Tera Term eller Putty og WinSCP installeret
- Du skal vide, hvordan man bruger SSH-terminalen på USG’en
- USG’en skal mindst have firmwareversion 4.30
1. Opsæt Pi og Apache
I dette scenarie har vi kun brug for et kommandolinjebaseret OS til Pi’en (Raspbian Stretch Lite)
download det venligst fra Raspberry Pi’s hjemmeside og installer det som beskrevet i dokumentationen.
https://www.raspberrypi.org/downloads/raspbian/
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
1.1 Aktivering af SSH og ændring af adgangskode
Nu skal du aktivere SSH. Sæt derfor SD-kortet i din computer og læg en tom fil med navnet “SSH” i SD-kortets rodmappe.
Når installationen er færdig, sæt Pi’en i dit netværk, start den og tjek, om du kan nå den via SSH (for eksempel med Putty eller Tera Term)
User: pi
Password: raspberryAnbefaling 1: Skift adgangskoden som beskrevet her:
https://www.raspberrypi.org/documentation/configuration/raspi-config.md
Anbefaling 2: Sørg for, at Pi’en altid får den samme IP
1.2 Opdater Pi og installer Apache-server
Nu kan vi tjekke for og installere opdateringer
sudo apt update && sudo apt upgrade --yesNår dette er gjort, kan vi installere Apache-serveren
sudo apt install apache2 --yesEfter installationen er færdig, burde du kunne se Apaches standardwebside ved at browse til Raspberry IP’en.
Nu er det tid til at genstarte Pi’en:
shutdown -rImens sætter vi den (midlertidige) port forwarding til Pi’en.
2. Port forwarding
For at have portene 80 og 443 åbne mod internettet. Nedenfor finder du, hvordan du udfører de nødvendige trin
2.1 Skift HTTPS-porten på USG til f.eks. 8443
Nu kan du tilgå USG’en sådan her: https://192.168.1.1:8443
2.2 Konfigurer port forwarding for HTTP og HTTPS
Tjek venligst, om du kan tilgå Pi’ens testside fra internettet
3. Opret og eksporter et certifikat
Før vi kan få et Let's Encrypt-certifikat, skal vi installere Let’s Encrypt-tilføjelsen til Apache. Den hjælper med at certificere dit domænenavn.
sudo apt install certbot python-certbot-apache --yes3.2 Generering af det første certifikat
Nu genererer vi det første certifikat:
sudo certbot --apacheDu skal gennemgå formularen og udfylde den korrekt. Du vil blive spurgt, om du ønsker permanent omdirigering.
Certifikatet vil blive anmodet om og automatisk installeret på Apache-serveren.
3.3 Eksport af certifikatet og download af certifikatet
Nu kan du eksportere certifikatet med et tidsstempel.
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 skal indtaste en adgangskode. Sørg for at huske adgangskoden, da du også skal bruge den ved import til USG’en.
For at hente certifikatet fra Pi’en, skal vi ændre adgangsrettighederne for filen myusg_[date].p12.
sudo chmod 777 myusg[date].p12Nu kan du hente filen med WinSCP fra /tmp-mappen.
4. Importer certifikatet til USG
4.1 Download og importer Let's Encrypts root- og mellemliggende certifikater
For at få USG’en til at stole på det tidligere eksporterede certifikat, skal vi importere root- og mellemliggende certifikater fra Let's Encrypt:
https://letsencrypt.org/certificates/
Sørg for, at certifikaterne gemmes som pem-filer (for eksempel letsencryptauthorityx3.pem).
På USG’en går du til Konfiguration > Objekter > Certifikater > Betroede certifikater og importerer root- og mellemliggende certifikater.
4.2 Importer og aktiver dit certifikat
På USG’en går du til Konfiguration > Objekter > Certifikater > Mine certifikater og importerer certifikatet (du skal også indtaste adgangskoden)
Gå til Konfiguration > System > WWW under Server Certificate kan du nu vælge dit importerede certifikat.
5. Konfigurer korrekt HTTP til HTTPS-omdirigering
5.1 Deaktiver NAT for Pi’en
For at frigøre portene 80 og 443 til USG’en igen, skal du deaktivere NAT for Pi’en. Gå til Konfiguration > Netværk > NAT og find og deaktiver de regler, der er ansvarlige for NAT. Slet venligst ikke reglerne, da du får brug for dem igen senere.
5.2 Sæt USG’s HTTPS-port tilbage til 443 og opsæt HTTP til HTTPS-omdirigering
Gå til Konfiguration > System > WWW og sæt HTTPS-porten tilbage til 443. Sørg for, at HTTP-omdirigering er aktiveret.
5.3 Fjern IP-adressen
Nu vil USG’en bruge det importerede certifikat. Det "problem", der er tilbage, er, at USG’en vil omdirigere HTTP til HTTPS sådan her:
https://192.168.1.1/redirect.cgi?arip=[your_dyndns]&original_url=http://[your_dyndns]/
Dette vil naturligvis skabe et certifikatproblem. For endeligt at slippe af med denne besked, skal du åbne en SSH-session til din USG og indtaste disse kommandoer:
Router> configure terminal
Router(config)# web-auth redirect-fqdn [your_domainname]
Router(config)# write
Router(config)# exit
Router> writeNu vil omdirigeringen se sådan ud:
https://[your_domain]/redirect.cgi?arip=[your_domain]&original_url=http://[your_domain]/
Tillykke, du har nu et Let's Encrypt-certifikat kørende på din USG.
Forny certifikatet
Let's Encrypt-certifikater er gyldige i 90 dage. Det betyder, at du skal forny certifikatet hver tredje måned.
1. Åbn HTTP- og HTTPS-porte til Pi’en igen
a ) skift HTTPS-portene på USG’en igen (Punkt 2.1)
b ) Genaktiver NAT for HTTP/HTTPS til Pi’en (Punkt 2.2)
2. SSH til Pi’en og forny certifikatet
Åbn en SSH-session til din Pi og indtast denne kommando
sudo certbot renewDette vil forny certifikatet i yderligere 90 dage
3. Eksporter og importer certifikatet
Nu skal du følge trinnene i punkt 3.3
4. Opdater certifikatet på USG’en
Fortsæt nu med trin 4.2
5. Skift portene tilbage
Følg trinnene i 5.1 og 5.2
Tillykke, du har nu fornyet Let's Encrypt-certifikatet på din USG.
Ansvarsfraskrivelse: Forstå venligst, at dette kun er en beskrivelse af, hvordan man får et Let's Encrypt-certifikat på din USG. Hvis noget går galt med Raspberry Pi’en, bedes du forstå, at vi ikke kan yde support vedrørende problemer med Pi’en!

Kommentarer
0 kommentarerLog ind for at kommentere.