ssl certificaten en https uitgelegd
Ssl Certificaten En Https Uitgelegd
SSL-certificaten en HTTPS uitgelegd: een praktische gids
Dit artikel legt uit wat SSL/TLS-certificaten zijn, hoe HTTPS werkt en hoe je een veilige verbinding opzet. Geschikt voor beheerders en ontwikkelaars die een Pixzo-server configureren.
VEREISTEN
- Een server met root-toegang (SSH) - Webserver: Apache 2.4.41 of Nginx 1.18.0 - OpenSSL 1.1.1 of hoger - ACL toegang tot je Pixzo-dashboard (domeinbeheer) - Certificaatuitgever: Let's Encrypt (via Certbot) of een betaalde CA
STAPPEN
1. Installeer Certbot voor automatische certificaatuitgifte Certbot gebruikt het ACME-protocol om TLS-certificaten aan te vragen en te vernieuwen.
```bash sudo apt update && sudo apt install certbot python3-certbot-apache -y ```
2. Vraag een certificaat aan voor je domein Vervang `voorbeeld.nl` door je eigen domein. Certbot configureert automatisch de webserver.
```bash sudo certbot --apache -d voorbeeld.nl -d www.voorbeeld.nl ```
3. Controleer of de TLS-handshake werkt Gebruik OpenSSL om de verbinding te testen. Dit bevestigt dat de certificaatketen compleet is.
```bash openssl s_client -connect voorbeeld.nl:443 -servername voorbeeld.nl ```
4. Schakel TLS 1.2 en 1.3 in, schakel TLS 1.0/1.1 uit Bewerk het configuratiebestand van je webserver. Voor Apache voeg je deze regels toe in `ssl.conf`:
```apache SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite HIGH:!aNULL:!MD5 ```
5. Configureer de juiste cipher suites voor Nginx Open je serverblock (`/etc/nginx/sites-available/voorbeeld.nl`) en voeg toe onder `server`:
```nginx ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_protocols TLSv1.2 TLSv1.3; ```
6. Automatiseer certificaatvernieuwing Certbot voegt standaard een cronjob toe. Controleer deze:
```bash sudo systemctl list-timers | grep certbot ```
7. Gebruik een intermediate certificate Bij handmatige installatie voeg je het intermediate certificate toe aan de keten. Let op: het rootcertificaat staat niet op de server, alleen in de browser.
```bash cat /etc/letsencrypt/live/voorbeeld.nl/fullchain.pem ```
8. Test je TLS-configuratie op kwetsbaarheden Gebruik een externe scanner:
```bash curl https://www.ssllabs.com/ssltest/analyze.html?d=voorbeeld.nl ```
VERIFICATIE
Voer dit commando uit om te controleren of HTTPS correct werkt:
```bash curl -I https://voorbeeld.nl ```
De response moet `HTTP/2 200 OK` of `HTTP/1.1 200 OK` zijn en een `Strict-Transport-Security` header bevatten.
VEELGESTELDE PROBLEMEN
1. Foutmelding: 'certificate chain incomplete' Oplossing: Voeg het intermediate certificate toe aan het servercertificaat. Bij Certbot gebeurt dit automatisch als je `--chain-path` niet overschrijft.
2. Browser waarschuwt 'not secure' Oorzaak: het certificaat is verlopen of de domeinnaam komt niet overeen. Controleer de geldigheidsduur: `openssl x509 -in /path/to/cert.pem -noout -dates`.
3. Certificaat wordt niet automatisch vernieuwd Controleer of de cronjob draait: `sudo certbot renew --dry-run`. Zorg dat poort 80 open is voor de ACME-challenge.
De levensduur van TLS-certificaten daalt snel. In 2026 is de maximale geldigheidsduur nog 200 dagen. Automatiseren via ACME wordt niet een keuze, maar een vereiste voor elke server die HTTPS serveert.