Lokale HTTPS-ontwikkeling met een zelfondertekend SSL-certificaat
Tijdens lokale webontwikkeling en testen is het essentieel om HTTPS-verbindingen, zoals in de productieomgeving, na te bootsen. Zelfondertekende SSL-certificaten worden weliswaar niet vertrouwd door publieke certificaatautoriteiten (CA), maar ze bieden een eenvoudige manier om HTTPS binnen lokale ontwikkelomgevingen te realiseren. In dit artikel lees je hoe je met de ingebouwde OpenSSL-tool van ServBay een efficiënt en veilig elliptische kromme (ECC) zelfondertekend SSL-certificaat aanmaakt én hoe je deze certficaten configureert voor je lokale website in ServBay. We gebruiken servbay.demo
als voorbeeld domeinnaam.
Weten hoe je HTTPS configureert helpt je om te testen hoe je website zich onder een beveiligde verbinding gedraagt in je lokale omgeving, bijvoorbeeld bij het voorkomen van mixed content-warnings en bij het testen van Cookie Security-tags.
Overzicht
Een zelfondertekend certificaat is een SSL-certificaat dat je zelf aanmaakt en ondertekent, zonder tussenkomst van een vertrouwde derde partij CA. Ze zijn geschikt voor situaties waarin publieke vertrouwensrelaties niet noodzakelijk zijn, zoals:
- Lokale ontwikkelomgevingen
- Interne testservers
- Interne applicaties zonder gevoelige data
ServBay integreert een OpenSSL-tool, zodat je direct vanuit de terminal certificaatbestanden kunt genereren.
Vereisten
- ServBay is geïnstalleerd en draait.
- Je bent bekend met basis commando’s in de terminal.
Stap 1: Genereer een zelfondertekend ECC SSL-certificaat
We adviseren ECC-certificaten vanwege hun betere prestaties ten opzichte van traditionele RSA-certificaten: ze bieden dezelfde beveiliging met kleinere sleutels, snellere ondertekening en validatie, en lagere belasting op de server.
Hieronder de stappen om een zelfondertekend ECC SSL-certificaat aan te maken:
Genereer een ECC privésleutel (Private Key)
Open je terminal en voer het volgende commando uit om een ECC-privésleutel
servbay.demo.key
te maken met deprime256v1
curve.shopenssl ecparam -genkey -name prime256v1 -out servbay.demo.key
1openssl
: start de OpenSSL-tool.ecparam
: werkt met ECC-parameters.-genkey
: genereert een nieuwe sleutel.-name prime256v1
: specificeert de ECC-curve,prime256v1
(NIST P-256) is een gangbare en veilige keuze.-out servbay.demo.key
: geeft de naam van het uitvoerbestand met de privésleutel.
Genereer een Certificate Signing Request (CSR)
Gebruik de zojuist gemaakte privésleutel
servbay.demo.key
om een Certificate Signing Requestservbay.demo.csr
aan te maken. Deze CSR bevat informatie voor het certificaat (zoals domeinnaam, organisatienaam, etc.) en wordt ondertekend met je privésleutel.shopenssl req -new -key servbay.demo.key -out servbay.demo.csr
1Dit commando vraagt vervolgens om verschillende gegevens die in de CSR worden opgenomen. Vul ze in zoals gevraagd. Het belangrijkste veld is
Common Name (e.g. server FQDN or YOUR name)
, waar je de lokale domeinnaam invult, bijvoorbeeldservbay.demo
. Andere velden kun je naar wens of volgens onderstaand voorbeeld invullen.Een voorbeeld van de invoer:
Country Name (2 letter code) [AU]:NL # Landcode, bijvoorbeeld NL (Nederland) State or Province Name (full name) [Some-State]:Noord-Holland # Provincie Locality Name (eg, city) []:Amsterdam # Stad Organization Name (eg, company) [Internet Widgits Pty Ltd]:ServBay # Organisatienaam Organizational Unit Name (eg, section) []:Development # Afdelingsnaam Common Name (e.g. server FQDN or YOUR name) []:servbay.demo # **Belangrijk: je lokale domein invullen** Email Address []:[email protected] # Contact e-mailadres Please enter the following 'extra' attributes to be sent on in your certificate request A challenge password []: # Optioneel, mag leeg blijven An optional company name []: # Optioneel, mag leeg blijven
1
2
3
4
5
6
7
8
9
10
11Genereer het zelfondertekende certificaat
Gebruik nu de CSR (
servbay.demo.csr
) en de privésleutel (servbay.demo.key
) om een zelfondertekend SSL-certificaatservbay.demo.crt
te maken, bijvoorbeeld met een geldigheid van 365 dagen.shopenssl x509 -req -days 365 -in servbay.demo.csr -signkey servbay.demo.key -out servbay.demo.crt
1openssl x509
: werkt met X.509-certificaten.-req
: geeft aan dat de input een CSR is.-days 365
: stelt de geldigheidsduur van het certificaat in op 365 dagen.-in servbay.demo.csr
: geeft het inputbestand (CSR) op.-signkey servbay.demo.key
: ondertekent het certificaat met je eigen privésleutel (voor zelfondertekende certificaten).-out servbay.demo.crt
: bepaalt de naam van het uitvoerbestand voor het certificaat.
Na het doorlopen van deze stappen vind je drie bestanden in je huidige map:
servbay.demo.key
(privésleutel),servbay.demo.csr
(CSR), enservbay.demo.crt
(zelfondertekend certificaat).
(Afbeelding: het genereren van certificaatbestanden in de terminal via OpenSSL)
Stap 2: Zelfondertekend SSL-certificaat configureren in ServBay
Na het aanmaken van de certificaatbestanden moeten deze op een toegankelijke plek voor ServBay worden geplaatst, en worden opgegeven in de websiteconfiguratie. ServBay adviseert alle SSL-certificaten te bewaren in de map /Applications/ServBay/ssl
met voor elk domein een aparte submap voor gemakkelijker beheer.
Verplaats certificaatbestanden naar de juiste map
Volg de ServBay-structuur en verplaats de gemaakte bestanden naar
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/
. Maak de map indien nodig aan.sh# Maak de map aan als deze nog niet bestaat mkdir -p /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ # Verplaats de bestanden mv servbay.demo.key /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ mv servbay.demo.crt /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ # Het CSR-bestand is vaak niet meer nodig, maar kan verplaatst worden voor backup/doeleinden. mv servbay.demo.csr /Applications/ServBay/ssl/private/tls-certs/servbay.demo/
1
2
3
4
5
6
7
8/Applications/ServBay/ssl/
: de standaardlocatie voor SSL-bestanden in ServBay.private/tls-certs/
: aanbevolen submapstructuur voor TLS/SSL-bestanden.servbay.demo/
: aparte submap per domein, zodat je meerdere certificaten makkelijk beheert.
Open het ServBay beheerinterface
Start de ServBay-app en open de beheerdersinterface.
Website toevoegen of bewerken
Ga in het beheerinterface naar het tabblad Websites. Maak een nieuwe site aan voor
servbay.demo
via Toevoegen (Add Website), of bewerk de bestaande siteconfiguratie.SSL/HTTPS-instellingen configureren
Zoek in de website-instellingen naar het gedeelte SSL/HTTPS of iets vergelijkbaars.
Kies 'Custom' als certificaatbron
Stel bij het type SSL-certificaat in op Custom (aangepast certificaat).
Geef het pad naar de certificaatbestanden op
Vul de paden in van de zojuist verplaatste bestanden:
- Certificate Key File (privésleutel):
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/servbay.demo.key
- Certificate File (certificaatbestand):
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/servbay.demo.crt
- Certificate Key File (privésleutel):
Domeinnaam instellen
Zorg dat het veld Domain (domein) precies
servbay.demo
bevat.Sla de configuratie op en pas toe
Sla alle wijzigingen op. ServBay vraagt je meestal om de wijzigingen toe te passen; hierbij wordt bijvoorbeeld de webserver (zoals Caddy of Nginx) herstart. Bevestig dit.
(Afbeelding: locatie voor het instellen van het aangepaste SSL-certificaat in ServBay)
Verifiëren van de HTTPS-configuratie
Na de configuratie kun je in je browser naar https://servbay.demo/
navigeren om te controleren of de setup werkt.
Omdat het certificaat zelfondertekend is en niet wordt vertrouwd door een publieke CA in je besturingssysteem of browser, verschijnt doorgaans een beveiligingswaarschuwing met een melding over een onbetrouwbaar certificaat of privacyrisico. Dit is normaal.
(Afbeelding: waarschuwing bij het bezoeken van een site met een zelfondertekend certificaat)
Je kunt ervoor kiezen deze waarschuwing te negeren en door te gaan (meestal via "Geavanceerd" of "Toch doorgaan"). Om blijvende waarschuwingen te voorkomen kun je het zelfondertekende certificaat toevoegen aan de vertrouwde hoofdopslag van je besturingssysteem.
(Afbeelding: certificaatdetails in de browser voor het zelfondertekende certificaat)
In het certificaatoverzicht kun je verifiëren dat het geladen certificaat inderdaad het servbay.demo
-certificaat is.
Belangrijke aandachtspunten
- Beveiliging van de privésleutel: Je .key-bestand is zeer gevoelig—bewaar het veilig en deel het niet. Zorg dat alleen de ServBay-gebruiker er toegang toe heeft.
- Bestandspaden: Controleer dat de paden in de ServBay-configuratie volledig en correct zijn.
- Domeinnaam moet overeenkomen: Het domein dat je invult bij Common Name (CN) tijdens het certificeren moet exact overeenkomen met je domein in ServBay; anders krijg je een foutmelding over een onjuist domein.
- Certificaatgeldigheid: De looptijd van je certificaat is zoals ingevoerd bij het genereren (
-days
). Een verlopen certificaat moet je vervangen.
Gerelateerde onderwerpen & alternatieven
Hoewel zelfondertekende certificaten prima zijn voor eenvoudige lokale HTTPS-tests, biedt ServBay alternatieven voor gebruiksvriendelijke, vertrouwde certificaten in je lokale ontwikkelomgeving:
- ServBay User CA: ServBay bevat een gebruikers-CA-tool. Voeg deze CA toe aan de vertrouwde lijst van je besturingssysteem; zo zijn certificaten die ermee zijn getekend automatisch vertrouwd door OS en browser. Dit is ideaal voor scenario’s als OAuth-callbacks, Webhooks, etc.
- ServBay Public CA: ServBay biedt ook een publieke CA-feature waarmee meteen een certificaat voor een lokaal domein wordt uitgegeven én vertrouwd in het systeem.
Deze alternatieven zijn handiger te beheren, zeker met meerdere sites. Zie de documentatie van ServBay voor uitgebreide instructies.
Veelgestelde vragen (FAQ)
- Waarom geeft mijn browser nog steeds 'onveilig' weer na het aanmaken van het certificaat?
- Antwoord: Zelfondertekende certificaten worden niet vertrouwd door publieke CA’s, dus browsers tonen een waarschuwing. Dit is normaal. Om de waarschuwing te vermijden voeg je het certificaat (of de CA, bijv. ServBay User CA) toe aan de vertrouwde certificaten van je OS.
- Kan ik een RSA-certificaat gebruiken?
- Antwoord: Ja, OpenSSL kan ook RSA-certificaten genereren. Gebruik bijvoorbeeld
openssl genrsa -out servbay.demo.key 2048
en volg de overige stappen. Toch raden we ECC-certificaten aan vanwege betere prestaties.
- Antwoord: Ja, OpenSSL kan ook RSA-certificaten genereren. Gebruik bijvoorbeeld
- Hoe voeg ik een zelfondertekend certificaat toe aan de vertrouwde certificaten in macOS?
- Antwoord: Open de app “Sleutelhangertoegang” (Keychain Access), selecteer het systeem- of login-sleutelhangertabblad. Sleep je
.crt
-bestand erin. Dubbelklik op het certificaat, klap “Vertrouwen” uit, stel “Beveiligingslaag (SSL)” in op “Altijd vertrouwen”. Sluit, geef je wachtwoord in, en herstart je browser.
- Antwoord: Open de app “Sleutelhangertoegang” (Keychain Access), selecteer het systeem- of login-sleutelhangertabblad. Sleep je
Samenvatting
In dit artikel heb je geleerd hoe je met de geïntegreerde OpenSSL-tool van ServBay een zelfondertekend ECC SSL-certificaat maakt en toevoegt aan je lokale siteconfiguratie. Zelfondertekende certificaten zijn ideaal voor lokale ontwikkeling en testdoeleinden en vormen een basis om HTTPS beter te begrijpen en lokaal veilig te werken. Voor gemakkelijk beheer van lokaal vertrouwde certificaten biedt ServBay extra tools zoals de User CA en Public CA. We hopen dat deze instructies je verder helpen bij je webontwikkeling!