Hoe maak je een selfsigned SSL certificaat met NGINX

Een selfsigned ssl certificaat is bijvoorbeeld handig achter cloudflare omdat deze niet verlengt hoeft te worden, maar niet geschikt voor publieke sites omdat deze niet door browsers ondersteund wordt. Gebruik daavoor Letsencrypt. Selfsigned SSL certificaten zijn ook handig om te voorkomen dat je het echte domeinnaam bij een IP uitlekt als iemand het ip opzoekt in zijn webbrowser.

Het SSL certificaat aanmaken

Maak het SSL certificaat:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
De informatie die je hier invult maakt niet uit, dus klik gerust een paar keer op enter.

Vervolgens moet je het ssl certificaat aan je NGINX config toevoegen via de volgende 2 lijnen:

ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

Als je cloudflare gebruikt: Zorg ervoor dat je SSL op full hebt staan in cloudflare als je daar gebruik van maakt, anders zal je een redirect loop krijgen. Gebruik niet de strict mode optie tenzij je een valide ssl certificaat hebt zoals van letsencrypt of een cloudflare origin certificate.
Je config komt er ongeveer zo uit te zien:

server {
    listen 80;
    server_name tutorial.feroxhosting.nl;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl http2;
    server_name tutorial.feroxhosting.nl;
    root /var/www/jouwapplicatie;
    index index.php;
    access_log /var/log/nginx/jouwapplicatie.app-access.log;
    error_log  /var/log/nginx/jouwapplicatie.app-error.log error;
    # SSL Configuration
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
    # Of als je een reverse proxy wil:
    # location / {
    #   proxy_pass http://127.0.0.1:1337/;
    # }
    location ~ /\.ht {
        deny all;
    }
}

restart nginx met service nginx restart en voilá, jouw web applicatie is online!

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *