Kennisbank ssl certificaten en https uitgelegd
gemiddeld 01 June 2026

ssl certificaten en https uitgelegd

SSL/TLS-certificaten en HTTPS: installatie en verificatieDit artikel legt uit hoe SSL/TLS-certificaten en HTTPS werken, en hoe je ze installeert. Voor
Ssl Certificaten En Https Uitgelegd
✦ ✦ ✦

Ssl Certificaten En Https Uitgelegd

HistorieCheck Redactie  ·  01 June 2026  ·  Geschiedenis

SSL/TLS-certificaten en HTTPS: installatie en verificatie

Dit artikel legt uit hoe SSL/TLS-certificaten en HTTPS werken, en hoe je ze installeert. Voor ontwikkelaars en systeembeheerders die een website beveiligen op Pixzo of een eigen server.

Vereisten

- Toegang tot je webserver (Apache 2.4.x, Nginx 1.24.x, of IIS 10+) - Domeinnaam met DNS-configuratie - OpenSSL 3.0+ geïnstalleerd op de server - Root- of sudo-toegang voor configuratiewijzigingen

Stappen

1. Genereer een sleutelpaar en CSR

Open een terminal op je server en voer uit:

```bash openssl req -new -newkey rsa:2048 -nodes -keyout voorbeeld.nl.key -out voorbeeld.nl.csr ```

Vul de gevraagde gegevens in. De `Common Name` moet exact overeenkomen met je domeinnaam.

2. Valideer domeineigendom

Kies een van deze methoden: - DNS-record: voeg een TXT-record toe met de waarde die je CA geeft - HTTP-validatie: plaats een validatiebestand op `/.well-known/acme-challenge/` - E-mail: reageer op de verificatiemail naar postmaster@ of admin@

3. Installeer het certificaat

Voor Nginx (`/etc/nginx/sites-available/voorbeeld.nl`):

```nginx server { listen 443 ssl; server_name voorbeeld.nl; ssl_certificate /etc/ssl/certs/voorbeeld.nl.crt; ssl_certificate_key /etc/ssl/private/voorbeeld.nl.key; ssl_trusted_certificate /etc/ssl/certs/intermediate.crt; } ```

Voor Apache (`/etc/apache2/sites-available/voorbeeld.nl-ssl.conf`):

```apache ServerName voorbeeld.nl SSLEngine on SSLCertificateFile /etc/ssl/certs/voorbeeld.nl.crt SSLCertificateKeyFile /etc/ssl/private/voorbeeld.nl.key SSLCertificateChainFile /etc/ssl/certs/intermediate.crt ```

4. Controleer de certificaatketen

Test of de volledige chain (servercertificaat + intermediates) correct is:

```bash openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt -untrusted /etc/ssl/certs/intermediate.crt /etc/ssl/certs/voorbeeld.nl.crt ```

5. Schakel HSTS in (optioneel)

Voeg in de serverconfiguratie toe:

```nginx add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; ```

HSTS vereist een werkende HTTPS-verbinding. Schakel het pas in nadat je stap 7 hebt geverifieerd.

6. Herstart de webserver

```bash Nginx sudo systemctl restart nginx

Apache sudo systemctl restart apache2 ```

7. Test de configuratie

Gebruik de SSL Labs test voor een uitgebreide controle:

```bash curl https://www.ssllabs.com/ssltest/analyze.html?d=voorbeeld.nl ```

Of lokaal:

```bash openssl s_client -connect voorbeeld.nl:443 -servername voorbeeld.nl ```

Verificatie

Open `https://voorbeeld.nl` in een browser. Het slotje moet groen zijn. Klik op het slotje en controleer:

- Certificaat is geldig (niet verlopen) - Uitgegeven door een vertrouwde CA - Domeinnaam komt overeen - Verbinding gebruikt TLS 1.2 of hoger

Commando voor directe verificatie op de server:

```bash echo | openssl s_client -connect voorbeeld.nl:443 -servername voorbeeld.nl 2>/dev/null | openssl x509 -noout -dates -subject -issuer ```

Veelgestelde problemen

1. Foutmelding `ssl_certificate_key` ontbreekt

Oorzaak: de private key is niet of verkeerd opgegeven in de configuratie.

Oplossing: controleer het pad naar het `.key`-bestand en herstart de webserver.

2. Browser meldt `NET::ERR_CERT_COMMON_NAME_INVALID`

Oorzaak: de domeinnaam in het certificaat komt niet overeen met de URL.

Oplossing: genereer een nieuw CSR met de juiste `Common Name`. Gebruik voor meerdere subdomeinen een wildcard-certificaat (`*.voorbeeld.nl`).

3. Verbinding valt terug naar HTTP

Oorzaak: er is geen HTTPS-redirect of HSTS is niet ingesteld.

Oplossing: voeg in je serverconfiguratie een redirect toe voor poort 80:

```nginx server { listen 80; server_name voorbeeld.nl; return 301 https://$server_name$request_uri; } ```

Hoe los je op dat je certificaatketen incompleet is? De meesten vergeten de intermediate chain. Voeg `ssl_trusted_certificate` (Nginx) of `SSLCertificateChainFile` (Apache) toe. Zonder chain weigert sommige browsers verbinding.

— ✦ —
← Terug naar kennisbank