Een Lets Encrypt-certificaat importeren op de USG

In dit KB-artikel laat ik u zien hoe u een Raspberry Pi kunt gebruiken om een Let's Encrypt-certificaat op uw USG te installeren.

Introductie

We gebruiken een Apache-server en de Let’s Encrypt-add-on voor Apache die draait op een Raspberry Pi om een certificaat voor een specifieke domeinnaam te downloaden. We zullen de Pi ook gebruiken om dit certificaat bij te werken.

We exporteren het certificaat van de Pi en importeren het naar de USG.

Waar is een certificaat voor?

Met het certificaat verdwijnen de beveiligingswaarschuwingen in uw browser. Bijvoorbeeld voor HotSpot of SSL VPN.

Vereisten

  1. U heeft een domeinnaam (DN) nodig (bijvoorbeeld hotspot.hotel-mayer.de)
  2. Als u geen statisch IP-adres heeft, moet u er ook voor zorgen dat uw DN up-to-date blijft,
    u kunt hiervoor de DDNS-optie van uw USG gebruiken: Configuratie > Netwerk > DDNS
  3. Als u uw USG in een dubbele NAT-situatie gebruikt, moet u ervoor zorgen dat HTTP en HTTPS worden doorgestuurd naar de USG
  4. U moet weten hoe u NAT op de juiste manier gebruikt
  5. U heeft een Raspberry Pi en een SD-kaart nodig voor het besturingssysteem
  6. Een pc met Tera Term of Putty en WinSCP geïnstalleerd
  7. U moet weten hoe u de SSH-terminal op de USG gebruikt
  8. De USG moet minimaal firmwareversie 4.30 hebben

1. De Pi en Apache instellen

In dit scenario hebben we alleen een commandoregel-gebaseerd besturingssysteem voor de Pi nodig (Raspbian Stretch Lite)
download dit alstublieft van de Raspberry Pi-website en installeer het zoals beschreven in de documentatie.

https://www.raspberrypi.org/downloads/raspbian/
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
 

1.1 SSH inschakelen en het wachtwoord wijzigen

U moet nu SSH inschakelen. Plaats hiervoor de SD-kaart in uw computer en plaats een leeg bestand met de naam “SSH” in de hoofdmap van de SD-kaart.

Zodra de installatie is voltooid, plaatst u de Pi in uw netwerk, start u deze op en controleert u of u via SSH verbinding kunt maken (bijvoorbeeld met Putty of Tera Term)

Gebruiker: pi
Wachtwoord: raspberry

Aanbeveling 1: wijzig het wachtwoord zoals hier beschreven:
https://www.raspberrypi.org/documentation/configuration/raspi-config.md

Aanbeveling 2: zorg ervoor dat de Pi altijd hetzelfde IP-adres krijgt

1.2 De Pi bijwerken en Apache-server installeren

Nu kunnen we controleren op updates en deze installeren

sudo apt update && sudo apt upgrade --yes

Als dit klaar is, kunnen we de Apache-server installeren

sudo apt install apache2 --yes

Na de installatie zou u de standaardwebpagina van Apache moeten kunnen zien door naar het IP-adres van de Raspberry Pi te browsen.

mceclip0.png

Nu is het tijd om de Pi opnieuw op te starten:

shutdown -r

Intussen stellen we de (tijdelijke) poortdoorsturing naar de Pi in.

2. Poortdoorsturing

Om de poorten 80 en 443 open te hebben naar het internet, vindt u hieronder de benodigde stappen

2.1 Verander de HTTPS-poort van de USG naar bijvoorbeeld 8443
Nu kunt u de USG als volgt benaderen: https://192.168.1.1:8443

2.2 Configureer poortdoorsturing voor HTTP en HTTPS
Controleer of u de testpagina van uw Pi vanaf het internet kunt bereiken

3. Een certificaat aanmaken en exporteren

Voordat we een Let's Encrypt-certificaat kunnen hebben, moeten we de Let’s Encrypt-add-on voor Apache installeren. Dit helpt bij het certificeren van uw domeinnaam.

sudo apt install certbot python-certbot-apache --yes

3.2 Het eerste certificaat genereren

Nu gaan we het eerste certificaat genereren:

sudo certbot --apache

U moet het formulier doorlopen en correct invullen. U wordt gevraagd of u een permanente redirect wilt instellen.

mceclip1.png

 mceclip2.png

Het certificaat wordt aangevraagd en automatisch geïnstalleerd op de Apache-server.

3.3 Het certificaat exporteren en downloaden

U kunt het certificaat nu exporteren met een tijdstempel.

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

U moet een wachtwoord invoeren. Zorg ervoor dat u het wachtwoord onthoudt, want dit heeft u ook nodig voor de import op de USG.

mceclip3.png

Om het certificaat van de Pi te halen, moeten we de toegangsrechten voor het bestand myusg_[datum].p12 wijzigen.

sudo chmod 777 myusg[date].p12

Nu kunt u het bestand met WinSCP uit de /tmp-map halen.

4. Het certificaat importeren op de USG

4.1 Download en importeer de root- en intermediate-certificaten van Let's Encrypt

Om de USG het eerder geëxporteerde certificaat te laten vertrouwen, moeten we de root- en intermediate-certificaten van Let's Encrypt importeren:

https://letsencrypt.org/certificates/

Zorg ervoor dat de certificaten worden opgeslagen als pem-bestand (bijvoorbeeld letsencryptauthorityx3.pem).

Ga nu op de USG naar Configuratie > Objecten > Certificaten > Vertrouwde certificaten en importeer de root- en intermediate-certificaten.

4.2 Importeer en activeer uw certificaat

Ga op de USG naar Configuratie > Objecten > Certificaten > Mijn certificaten en importeer het certificaat (U moet ook het wachtwoord invoeren)

Ga naar Configuratie > Systeem > WWW en onder Servercertificaat kunt u nu uw geïmporteerde certificaat kiezen.

5. Stel de HTTP naar HTTPS-omleiding correct in

5.1 Deactiveer de NAT voor de Pi

Om de poorten 80 en 443 weer vrij te maken voor de USG, moet u de NAT voor de Pi deactiveren. Ga naar Configuratie > Netwerk > NAT en zoek en deactiveer de regels die verantwoordelijk zijn voor de NAT. Verwijder de regels niet, want u heeft ze later weer nodig.

5.2 Zet de HTTPS-poort van de USG terug naar 443 en stel de HTTP naar HTTPS-omleiding in

Ga naar Configuratie > Systeem > WWW en zet de HTTPS-poort terug naar 443. Zorg dat de HTTP-omleiding is ingeschakeld.

5.3 Verwijder het IP-adres

Nu zal de USG het geïmporteerde certificaat gebruiken. Het "probleem" dat overblijft is dat de USG de HTTP naar HTTPS-omleiding als volgt uitvoert:

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

mceclip4.png

Dit veroorzaakt natuurlijk een certificaatprobleem. Om dit bericht definitief kwijt te raken, opent u een SSH-sessie naar uw USG en voert u deze commando's in:

Router> configure terminal
Router(config)# web-auth redirect-fqdn [your_domainname]
Router(config)# write
Router(config)# exit
Router> write

Nu ziet de omleiding er als volgt uit:

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

mceclip5.png

 Gefeliciteerd, u heeft nu een Let's Encrypt-certificaat draaien op uw USG.

Het certificaat vernieuwen

Let's Encrypt-certificaten zijn 90 dagen geldig. Dit betekent dat u het certificaat elke drie maanden moet vernieuwen.

1. Open de HTTP- en HTTPS-poorten weer naar de Pi

a ) wijzig de HTTPS-poorten van de USG weer (Punt 2.1)
b ) activeer de NAT voor HTTP/HTTPS voor de Pi weer (Punt 2.2)

2. SSH naar de Pi en vernieuw het certificaat

Open een SSH-sessie naar uw Pi en voer dit commando uit

sudo certbot renew

Dit vernieuwt het certificaat voor nog eens 90 dagen

3. Exporteer en importeer het certificaat

Volg nu de stappen in punt 3.3

4. Werk het certificaat op de USG bij

Ga nu verder met stap 4.2

5. Zet de poorten weer terug

Volg de stappen in 5.1 en 5.2

Gefeliciteerd, u heeft nu het Let's Encrypt-certificaat op uw USG vernieuwd.

Disclaimer: Begrijp alstublieft dat dit slechts een beschrijving is van hoe u een Let's Encrypt-certificaat op uw USG kunt krijgen. Als er iets mis is met de Raspberry Pi, begrijpen wij dat wij geen ondersteuning kunnen bieden voor problemen met de Pi!

Artikelen in deze sectie

Was dit artikel nuttig?
Aantal gebruikers dat dit nuttig vond: 0 van 3
Delen

Opmerkingen

0 opmerkingen

U moet u aanmelden om een opmerking te plaatsen.