Certificaat voor je router of ander apparaat instellen (TLS)
Gratis ondertekende TLS-certificaten zijn op webservers zeer gangbaar. De gebruikelijke set-upmethode van het populaire Let’s Encrypt werkt echter niet als je probeert een certificaat voor je router, firewalls en webcams via de webinterface toe te voegen. Als alternatief kun je overschakelen op gespecialiseerde webservices.
Lees verder na de advertentie
TLS-certificaten (Transport Layer Security) worden gebruikt om het dataverkeer tussen een webserver en de browser te versleutelen. De webserver kan zich authenticeren met een ondertekend certificaat om te bewijzen dat je echt communiceert met het gewenste domein – bijvoorbeeld router.example.com of jouwbank.nl. Bij veiligheidskritische domeinen zoals die laatste zijn extra stappen nodig.
Bij de veelgebruikte gratis certificaten van Let’s Encrypt moet voor het aanvragen een token op de webserver worden opgeslagen. Er zijn tools zoals certbot die het proces kunnen automatiseren (voor Apache, Nginx en dergelijke).
Certificaat op je router
Tip!
Ontworpen voor creators en professionals: configureer jouw eigen ASUS ProArt P16 nu.
Op appliances, webcams en andere apparaten die je via een webinterface configureert, kun je geen bestanden in het pad van de webserver plaatsen. Daarom moet je die via DNS (Domain Name System) verifiëren. Daar stuurt Let’s Encrypt een token voor. De domeineigenaar moet die token bij de verantwoordelijke DNS-server voor het betreffende domein opslaan in een apart record (TXT-record). Dat kan Let’s Encrypt dan uitlezen door middel van een DNS-request.
Ook die DNS-verificatie kan worden geautomatiseerd . In principe komen de certificaten dan in een configureerbaar pad te staan, van waaruit je ze handmatig op de router of firewall kunt zetten.
Je kunt je dat werk besparen als je de reverse-proxy Traefik voor je netwerk instelt. Traefik gebruikt wildcard-certificaten voor alle hosts van een domein, dus je hoeft het maar één keer in te stellen voor de firewall, webcam en alle andere apparaten. Sommige systeembeheerders vinden zo’n ‘single point of failure’ in hun netwerk echter niet prettig. En als er bijvoorbeeld meerdere filialen zijn, met elk hun eigen firewalls, dan moet je in elk filiaal Traefik opzetten.
(Aanvullende links bij dit artikel hier, meer over Traefik gebruiken lees je in c’t magazine 7-8/2020)
Certificaat aanmaken
Als alternatief kun je gebruikmaken van webservices zoals freessl.org, die ook gratis Let’s-Encrypt-certificaten verstrekken. Daar geef je de hostnaam op (bijv. firewall.example.com) en klik je op ‘Create a free SSL certificate’. Als het certificaat voor meerdere hosts moet gelden, voer de hostnamen dan in gescheiden door komma’s en zonder spaties. De hosts komen in het veld ‘Subject Alternative Name’ (SAN) in het certificaat te staan.
Als je een geldig e-mailadres invoert, zal Let’s Encrypt je er per mail aan herinneren dat het huidige certificaat moet worden verlengd. Maar je krijgt je certificaat ook als je daar een fantasie-mailadres opgeeft.

Sleutel genereren
Om ervoor te zorgen dat de voor TLS benodigde privé-sleutel geheim blijft, is het aan te raden om die samen met de publieke sleutel lokaal in je eigen browser te genereren. Klik daarvoor op ‘Browser Create’ en Create. Je browser genereert dan automatisch een sleutelpaar van het type RSA met 2048 bitlengte. Het is niet eenvoudig om te controleren of de andere methoden van sleutelgeneratie betrouwbaar zijn. Voor de optie ‘Local Create’ moet bijvoorbeeld een KeyManager van een andere website geïnstalleerd worden. We raden aan de andere methoden te vermijden.
Certificaat laten ondertekenen
Om Let’s Encrypt je certificaat te laten ondertekenen, begint de DNS-verificatie na de sleutelgeneratie. Open daarvoor in een ander browservenster de configuratie van de verantwoordelijke DNS-server voor je domein. Kopieer het TXT-record dat FreeSSL weergeeft en sla het op de DNS-server op. De naam van het TXT-record volgt het patroon: _acme-challenge.example.com. De token hoort thuis in het corresponderende TXT-veld. Klik op Validation.
Gegevens downloaden
De browser toont vervolgens de private key en de certificaatgegevens (je certificaat en het intermediate-certificaat van Let’s Encrypt). Alle componenten kunnen als zip-archief worden opgeslagen via ‘Download File’. Dat archief bevat twee bestanden: het certificaat full_chain.pem (dat wordt door de HTTPS-server aan clients geleverd) en de private.key voor de TLS-authenticatie van de server.
Andere opties
Met het commando openssl kun je ook andere sleuteltypes en lengtes genereren. Die hoef je dan alleen nog maar door een Certificate Signing Request (CSR) te laten ondertekenen. Een voorbeeld:
openssl req -newkey rsa:4096 -sha256 -nodes -keyout mijnserver.key -out mijnserver.csr -subj ‘/CN=mijnserver.example.com’ -addext ‘subjectAltName=DNS:mijnserver.example.com’
Het bestand mijnserver.key bevat de private-key. Bewaar die ergens veilig. Een geschikte plek is bijvoorbeeld de wachtwoordmanager KeePass. Het uitvoerbestand mijnserver.csr bevat het ondertekeningsverzoek dat begint met ‘Begin Certificate Request’. Selecteer op de website van FreeSSL de optie ‘I have a CSR’ en kopieer je aanvraag naar het juiste veld. De DNS-verificatie zal dan op dezelfde manier werken als voor de sleutels die door de browser gegenereerd worden.
Ontvang meer tips voor beheer van je IT-apparatuur! Schrijf je in voor de nieuwsbrief:
Certificaat importeren
Let’s Encrypt levert de bestanden in het PEM-formaat voor webservers zoals Apache. Sommige apparaten hebben echter één enkel bestand nodig dat zowel het certificaat als de private-key bevat, zoals Fritzbox-routers en de monitoringtool ntopng. De bijpassende bestanden kun je bij elkaar kopiëren met een tekstverwerker of samenvoegen met een commando als cat full_chain.pem private.key >> fritzbox.cert. Laat tot slot de fingerprint weergeven, die je bij een van de volgende stappen nodig hebt:
openssl x509 -noout – fingerprint -sha256 -inform pem -in fritzbox.cert
Bij een Fritzbox upload je het bestand fritzbox.cert in de webinterface via het menu-item ‘Internet / Permit Access / FRITZ!Box Services’. Laat het veld Password leeg, omdat de door de browser gegenereerde privésleutel niet versleuteld is. Na het klikken op Import toont de webinterface onder andere de SHA-1 fingerprint van het certificaat. Die moet overeenkomen met wat eerder door openssl getoond werd, anders heb je vermoedelijk een andere sleutel geïmporteerd dan de bedoeling was.
Voor de ntopng-server zet je het bestand in het pad /usr/share/ntopng/httpdocs/ssl/ met de naam ntopng-cert.pem (admin-wachtwoord vereist). Herstart de applicatie om de wijzigingen te accepteren:
sudo service ntopng stop & sudo service ntopng start
Ander formaat certificaat voor appliance
Sommige appliances vereisen bestanden in het formaat PKCS#12. Die kun je herkennen aan de extensie .p12 of .pfx. Het certificaat en de privésleutel zitten in één bestand en zijn versleuteld met een passphrase. Dat formaat kun je ook met openssl genereren op basis van de private key en het certificaat:
openssl pkcs12 -export -inkey private.key -in full_chain.pem -out mijnserver.p12
Voer een wachtwoord in voor encryptie, daar wordt later bij het importeren naar gevraagd.
Verbinden zonder waarschuwing
Na dat alles zou je browser niet langer moeten klagen over de certificaten van je apparaten als je via HTTPS toegang tot hun webinterfaces wilt krijgen. Door het ontbreken van een automatische update moet je helaas deze procedure na uiterlijk 90 dagen herhalen. Langer is het certificaat niet geldig.
(Informatie afkomstig uit het artikel van Johannes Weber en Noud van Kruysbergen, c’t magazine 11/2020, p. 136)
- Ontdek hoe je veilig blijft zonder nieuwe pc te kopen.
- Big Tech onder de loep
- Alles over Wi-Fi 8
Tip!
Ontworpen voor creators en professionals: configureer jouw eigen ASUS ProArt P16 nu.


Praat mee