Kennisbank › Apache › ssl certificaten en https uitgelegd
apache gemiddeld 01 June 2026

ssl certificaten en https uitgelegd

SSL-certificaten en HTTPS uitgelegdDit artikel legt uit wat SSL/TLS-certificaten zijn en hoe je HTTPS correct implementeert op je Pixzo-server.Vereisten-

SSL-certificaten en HTTPS uitgelegd

Dit artikel legt uit wat SSL/TLS-certificaten zijn en hoe je HTTPS correct implementeert op je Pixzo-server.

Vereisten

- Toegang tot je webserver (Apache 2.4.41+ of Nginx 1.18+) - Domeinnaam met DNS-beheer - Root- of sudo-toegang via SSH - OpenSSL versie 1.1.1 of hoger geïnstalleerd

Stappen

1. Genereer een private key en CSR

Maak een 2048-bit RSA private key en een Certificate Signing Request (CSR) voor je domein:

openssl req -new -newkey rsa:2048 -nodes -keyout jouwdomein.key -out jouwdomein.csr

Vul tijdens het proces je domeinnaam (Common Name) en organisatiegegevens in.

2. Vraag een certificaat aan bij een CA

Gebruik Let's Encrypt voor een gratis DV-certificaat via Certbot:

sudo certbot certonly --standalone -d jouwdomein.nl -d www.jouwdomein.nl

Certbot plaatst het certificaat in `/etc/letsencrypt/live/jouwdomein.nl/`.

3. Download de intermediate certificate

Haal de juiste intermediate certificate chain voor je CA. Voor Let's Encrypt is dit automatisch meegeleverd. Controleer de keten:

openssl crl2pkcs7 -nocrl -certfile /etc/letsencrypt/live/jouwdomein.nl/fullchain.pem | openssl pkcs7 -print_certs -text | grep "Subject:"

4. Configureer je webserver voor TLS 1.2 of hoger

Voeg in je Apache virtual host of Nginx server block de volgende configuratie:

Apache
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/jouwdomein.nl/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/jouwdomein.nl/privkey.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
SSLHonorCipherOrder on
Nginx
ssl_certificate /etc/letsencrypt/live/jouwdomein.nl/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jouwdomein.nl/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;

5. Verwijder zwakke cipher suites

Sluit RC4, SHA-1 en 3DES uit in je cipher configuratie:

OpenSSL test: RC4 mag niet voorkomen
openssl ciphers -v 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256' | grep -i rc4

6. Zet HTTP-naar-HTTPS redirect aan

Voeg een redirect toe naar HTTPS voor al het HTTP-verkeer:

<VirtualHost *:80>
    ServerName jouwdomein.nl
    Redirect permanent / https://jouwdomein.nl/
</VirtualHost>

7. Herlaad de serverconfiguratie

Pas de wijzigingen toe zonder downtime:

sudo systemctl reload apache2   voor Apache
sudo systemctl reload nginx     voor Nginx

8. Stel automatische vernieuwing in (Let's Encrypt)

Certbot kan certificaten automatisch verlengen. Test de vernieuwing:

sudo certbot renew --dry-run

Voeg een cronjob toe voor dagelijkse controle (`0 3 * /usr/bin/certbot renew --quiet`).

Verificatie

Controleer of je HTTPS correct werkt:

curl -vI https://jouwdomein.nl 2>&1 | grep -E "(SSL connection|TLS|HTTP/2)"

Gebruik de SSL Labs test (ssllabs.com/ssltest) of de OpenSSL s_client:

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

Veelgestelde problemen

Certificaat wordt niet vertrouwd door browser

De intermediate certificate ontbreekt in de keten. Hele keten moet worden meegeleverd — controleer met: openssl s_client -connect jouwdomein.nl:443 -showcerts | grep "s:" | uniq Je ziet het rootcertificaat niet; alleen het eindcertificaat en intermediate moeten zichtbaar zijn. Voeg bij Apache `SSLCertificateChainFile` of bij Nginx het volledige chain-bestand toe.

Foutmelding "certificate has expired" na installatie

Controleer of de systeemtijd correct is gesynchroniseerd: timedatectl status Forceer NTP-sync: `sudo timedatectl set-ntp true`.

TLS 1.0 of 1.1 nog actief ondanks configuratie

Sommige load balancers of reverse proxies herschrijven de SSL-configuratie. Controleer of er geen globale SSL-instellingen in `/etc/ssl/` of een `ssl.conf`-bestand de lokale instellingen overschrijven met `grep -r "SSLProtocol\|ssl_protocols" /etc/`.

← Terug naar kennisbank