ssl certificaten en https uitgelegd
Ssl Certificaten En Https Uitgelegd
SSL-certificaten en HTTPS uitgelegd
Dit artikel legt uit wat SSL-certificaten zijn, hoe HTTPS werkt, en hoe je een TLS-certificaat correct implementeert op jouw webserver. Bedoeld voor developers en systeembeheerders die met Pixzo hosting werken.
1. INLEIDING Dit artikel legt uit wat een TLS-certificaat is, hoe HTTPS werkt, en hoe je het correct implementeert op jouw server. Voor developers en systeembeheerders.
2. VEREISTEN - Toegang tot een webserver (Pixzo control panel of SSH) - Een domeinnaam die naar jouw server wijst - Basiskennis van terminal/SSH-commando's - OpenSSL (versie 1.1.1 of hoger) — check met `openssl version` - sudo-rechten op de server
3. STAPPEN
Stap 1: Genereer een private key en CSR Maak een private key en een Certificate Signing Request (CSR) aan. De private key blijft geheim en mag nooit worden gedeeld.
```bash openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr ```
Vul de gevraagde gegevens in: Land, Organisatie, en vooral de Common Name (CN) = jouw domeinnaam.
Stap 2: Stuur de CSR naar een Certificate Authority (CA) Gebruik een vertrouwde CA zoals Let's Encrypt (gratis), DigiCert of Sectigo. Bij Let's Encrypt gebruik je Certbot:
```bash sudo certbot certonly --standalone -d example.com -d www.example.com ```
Stap 3: Installeer het certificaat en de keten op de server Plaats de bestanden op de juiste locatie. Voorbeeld voor Apache op Ubuntu:
```bash sudo cp /etc/letsencrypt/live/example.com/fullchain.pem /etc/ssl/certs/ sudo cp /etc/letsencrypt/live/example.com/privkey.pem /etc/ssl/private/ ```
Stap 4: Configureer de webserver voor HTTPS Apache-voorbeeld in `/etc/apache2/sites-available/example.com.conf`:
```apache
SSLEngine on SSLCertificateFile /etc/ssl/certs/fullchain.pem SSLCertificateKeyFile /etc/ssl/private/privkey.pem SSLCertificateChainFile /etc/ssl/certs/chain.pem
Protocols h2 http/1.1 SSLProtocol TLSv1.3 -TLSv1.2 ```
Stap 5: Activeer HSTS (optioneel maar aanbevolen) Voeg deze header toe aan de serverconfiguratie:
```apache Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" ```
Stap 6: Controleer of alles werkt Herstart de webserver:
```bash sudo systemctl restart apache2 ```
4. VERIFICATIE Open een browser en ga naar `https://example.com`. Het hangslotje moet groen zijn.
Gebruik de command-line check:
```bash openssl s_client -connect example.com:443 -servername example.com ```
De output moet `Verification: OK` bevatten en het certificaat mag niet verlopen zijn. Check de geldigheidsdatum met:
```bash echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -dates ```
5. VEELGESTELDE PROBLEMEN
Probleem 1: Browser geeft 'certificate not trusted' Oorzaak: de chain of trust is incompleet. Je mist een intermediate certificate. Oplossing: voeg de intermediate CA-certificaten toe aan `SSLCertificateChainFile`.
Probleem 2: HTTPS werkt niet op alle pagina's, alleen op de homepage Oorzaak: mixed content — sommige resources (CSS, JS) worden nog via HTTP geladen. Oplossing: zorg dat alle links `https://` gebruiken. Gebruik een tool zoals `https://www.whynopadlock.com` om mixed content te vinden.
Probleem 3: Certificaat is verlopen, maar automatische verlenging faalt Oorzaak: Certbot cronjob draait niet of heeft een fout. Oplossing: herinstalleer Certbot en forceer verlenging:
```bash sudo certbot renew --force-renewal ```
Controleer of de cronjob actief is:
```bash systemctl list-timers | grep certbot ```
De volgende stap is het configureren van HSTS en het toevoegen van een aparte HTTP-naar-HTTPS redirect. Dit voorkomt dat gebruikers per ongeluk de onbeveiligde versie van jouw site zien.