NGINX – Selbst signiertes SSL Zertifikat (HTTPS) erstellen

Hi,

heute machen wir es ganz kurz und knackig. Jeder DEV kennt es, er möchte lokal seine Testseite über HTTPS erreichen nur ist leider im Docker Container kein Zertifikat hinterlegt. Ok also lasst uns ein selbst signiertes Zertifikat erstellen und unseren NGINX damit SSL / HTTPS fähig machen.

Das ganze haben wir auf einem Ubuntu 22.04 durchgeführt.

Schritt 1: SSL Zertifikat generieren

So dann legen wir mal los. Als erstes ersteleln wir uns einen Ordner wo wir die Zertifikate ablegen wollen. Da es sich hier um NGINX handelt legen wir das Zertifikat in folgenden Ordner ab.


Copy&Paste:
# sudo mkdir /home/dev/meinProjekt/docker/nginx/ssl

# sudo chmod 700 /home/dev/meinProjekt/docker/nginx/ssl

Nun können wir das SSL Zertifikat erstellen:


Copy&Paste:

# sudo openssl req -x509 -nodes -days 1825 -newkey rsa:2048 -keyout /home/dev/meinProjekt/docker/nginx/ssl/nginx-selfsigned.key -out /home/dev/meinProjekt/docker/nginx/ssl/nginx-selfsigned.crt

Die Fragen beantwortet Ihr einfach in dem Ihr 5x Enter drückt und alles leer lasst.

Schritt 2: Open SSL? Diffie-Hellman-Schlüssel genieren

Falls euch das nichts sagt dann könnt Ihr euch hier näher dazu informieren.


Copy&Paste:

# sudo openssl dhparam -out /home/dev/meinProjekt/docker/nginx/ssl/dhparam.pem 2048

Schritt 3: NGINX Konfiguration anpassen

Im letzten Schritt müssen wir lediglich die NGINX Konfiguration anpassen und den NGINX neustarten.

Copy&Paste:

server {
    listen 443 http2 ssl;
    listen [::]:443 http2 ssl;

    server_name localhost;

    ssl_certificate /home/dev/meinProjekt/docker/nginx/ssl/nginx-selfsigned.crt;
    ssl_certificate_key /home/dev/meinProjekt/docker/nginx/ssl/nginx-selfsigned.key;
    ssl_dhparam /home/dev/meinProjekt/docker/nginx/ssl/dhparam.pem;
}

Nun müsst ihr nur noch den NGINX oder den Docker Container neustarten. Wenn Ihr im Docker arbeitet dann passt die Pfade entsprechend an.

Viel Spaß

Leave a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Seite verwendet Cookies, um die Nutzerfreundlichkeit zu verbessern. Mit der weiteren Verwendung stimmst du dem zu.