SSL-certificaatgenerator
Identiteit
Certificaat
Privésleutel (geheim houden!)
Self-signed certificates are untrusted by browsers by default: use only for lokaal development, testing, of private networks.
Genereer een zelfondertekend certificaat voor lokale ontwikkeling of interne tests, rechtstreeks in je browser. Je kiest de RSA-sleutellengte (2048, 3072 of 4096 bits), de Common Name, de Subject Alternative Names, het geldigheidsvenster en basisgegevens van de organisatie. Het certificaat en de privésleutel worden in je browser gemaakt en nooit naar onze server gestuurd; je downloadt beide als PEM-bestanden, klaar voor Nginx of Apache.
Hoe certificaatgeneratie werkt
-
1
Kies de RSA-sleutellengte
2048 bits volstaat voor de meeste tests; 3072 of 4096 geven een grotere sleutel ten koste van snelheid.
-
2
Voer onderwerp en SANs in
Common Name plus elke hostnaam of IP die het certificaat moet dekken (moderne browsers negeren de CN ten gunste van de SANs).
-
3
Genereer in de browser
Een zelfondertekend certificaat wordt gemaakt en ondertekend met de bijbehorende privésleutel, allemaal lokaal in je browser.
-
4
Download het resultaat
Een PEM-gecodeerd certificaat (`cert.pem`) en de privésleutel in PEM (`key.pem`), klaar om te installeren.
Alles gebeurt in je browser
Deze generator draait volledig in je browser. Het RSA-sleutelpaar wordt lokaal aangemaakt met een JavaScript-cryptobibliotheek, het certificaat wordt op je apparaat ondertekend, en noch de privésleutel noch het certificaat wordt ooit naar onze server geüpload. Behandel de privésleutel toch als een geheim: wie hem heeft, kan zich als het certificaat voordoen.
Wat zelfondertekend betekent
Je bent tegelijk de uitgever en het onderwerp: het certificaat is ondertekend met zijn eigen privésleutel, dus geen enkele openbare certificeringsinstantie (CA) staat ervoor in. Daarom tonen browsers een waarschuwing. Het is geschikt voor tests, lokale ontwikkeling (localhost, dev.local) en interne servers waar je het certificaat kunt verspreiden onder de clients die het moeten vertrouwen.
Heb je een certificaat nodig dat het openbare internet vertrouwt, dan is deze tool niet de juiste stap: je hebt een CA-ondertekend certificaat nodig (bijvoorbeeld van Let’s Encrypt of een betaalde CA), wat een certificaatondertekeningsverzoek (CSR) en domeinvalidatie vereist die deze browsertool niet uitvoert.
Wat in het certificaat staat
| Veld | Opmerkingen |
|---|---|
| Onderwerp (CN, O, C) | Common Name, Organisatie, Land |
| Subject Alternative Names | Elk gedekt domein of IP (cruciaal!) |
| Publieke sleutel | RSA, afgeleid van de gegenereerde privésleutel |
| Uitgever | Gelijk aan het onderwerp, want zelfondertekend |
| Geldigheid | Not Before / Not After (jouw geldigheidsdagen) |
| Key Usage | digitalSignature, keyEncipherment |
| Extended Key Usage | serverAuth, clientAuth |
| Basic Constraints | CA:FALSE (een leaf-certificaat, geen CA) |
Uitvoerbestanden
key.pem, de privésleutel (beveilig deze, modus 0600)cert.pem, het zelfondertekende certificaat (openbaar, verspreidbaar)
Voor Nginx
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/private/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
Voor Apache 2.4+
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/cert.pem
SSLCertificateKeyFile /etc/ssl/private/key.pem
</VirtualHost>
Het certificaat vertrouwen op je eigen machines
Wil je de browserwaarschuwing op een machine die je beheert het zwijgen opleggen, importeer dan cert.pem in het vertrouwensarchief van dat systeem of die browser. Doe dit alleen voor certificaten die je zelf hebt gegenereerd, op apparaten die van jou zijn. Tools als mkcert automatiseren een lokale CA voor meerdere diensten; deze generator maakt telkens één zelfondertekend certificaat.
Waarvoor zelfondertekend niet geschikt is
- Openbare websites. Gebruikers zien een waarschuwing en velen haken af.
- Integraties met API’s van derden. De meeste clients weigeren onbekende uitgevers.
- Productie. Absoluut niet. Gebruik Let’s Encrypt (gratis) of een betaalde CA voor alles op het open internet.
Veelgestelde vragen
Nee. Het sleutelpaar en het certificaat worden in je browser gegenereerd en blijven op je apparaat; er wordt niets geüpload. Houd het gedownloade bestand key.pem toch privé, want wie het heeft, kan zich als het certificaat voordoen.
Nee, als derden verbinding maken. Browsers tonen een luide waarschuwing. Gebruik een CA-ondertekend certificaat van een gratis (Let’s Encrypt, ZeroSSL) of betaalde CA. Zelfondertekend is prima voor machine-naar-machine binnen een intern netwerk waar je beide kanten beheert.
Vroeger bevatte de CN het primaire domein. Moderne browsers negeren de CN bij hostvalidatie en gebruiken alleen de SANs. Zet altijd elke hostnaam in de SANs; stel de CN alleen in op het primaire domein voor leesbare identificatie.
Ja, zet *.example.com in de SANs. Het dekt één niveau van subdomeinen. Voor meerdere niveaus voeg je meerdere wildcards toe (*.example.com en *.dev.example.com).
Gerelateerde tools
Caesar-cijfer encoder
Versleutel en ontsleutel tekst met het Caesar-cijfer. Elke verschuiving 1-25, ondersteunt ROT13 als speciaal geval, behoudt interpunctie en hoofdletters.
Base85 encoder en decoder
Encodeer en decodeer Base85 in de variant Adobe Ascii85, de variant die in PostScript- en PDF-bestanden zit. Compacter dan Base64 voor binaire data.
A1Z26-cijferencoder
Codeer tekst met het A1Z26-cijfer (A=1, B=2, ... Z=26) of decodeer een cijferreeks terug naar letters, met aanpasbaar scheidingsteken.
Base58 encoder en decoder
Encodeer UTF-8-tekst of hexadecimale bytes en decodeer Base58 veilig met het Bitcoin-, Ripple- of Flickr-alfabet.
bcrypt-generator
Genereer een bcrypt-hash van een plaintext wachtwoord. Instelbare costfactor van 4 tot 13, compatibel met Laravel, Django, Node en PHP.
Base64-bestandsencoder
Encodeer elk bestand (PDF, ZIP, afbeelding, executable) naar Base64-tekst om in JSON, e-mail, YAML of data URI's te embedden. Draait lokaal, geen upload.