SSL-certificaatgenerator

Identiteit

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. 1

    Kies de RSA-sleutellengte

    2048 bits volstaat voor de meeste tests; 3072 of 4096 geven een grotere sleutel ten koste van snelheid.

  2. 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. 3

    Genereer in de browser

    Een zelfondertekend certificaat wordt gemaakt en ondertekend met de bijbehorende privésleutel, allemaal lokaal in je browser.

  4. 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