Selbstsigniertes Zertifikat erstellen und mit NGINX benutzen

Hi,

wer NGINX und SSL benutzen möchte dazu aber kein Geld ausgeben will kann dies mit einem selbstsignierten Zertifikat machen.
Dies wird aber nicht für Produktivsysteme geraten!

Als erstes erstellen wir uns einen Ordner im nginx Verzeichnis wo wir die Zertifikate generieren.

mkdir /etc/nginx/https
cd /etc/nginx/https

Zertifikate erzeugen:

openssl genrsa -out example.key 2048
openssl req -new -key example.key -out example.csr

Dabei kann man einige Daten angeben… oder auch nicht 😉

Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Mecklenburg-Vorpommern
Locality Name (eg, city) []:Neubrandenburg 
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Inc
Organizational Unit Name (eg, section) []:Skunk works
Common Name (e.g. server FQDN or YOUR name) []:example.org
Email Address []:webmaster@example.org

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Unser nun selbst erstelltes Zertifikat wird nun von uns selbst signiert für 730 Tage.

openssl x509 -req -days 730 -in example.csr -signkey example.key -out example.crt

Wir können nun unsere Zertifikate in NGINX einbinden. Dies passiert in der „server {}“ Direktive.

server {
        listen 80;
        listen 443 ssl;

        root /var/www/example/root;
        index index.html index.htm;
 
        server_name example.com;

        ssl_certificate /etc/nginx/ssl/example.crt;
        ssl_certificate_key /etc/nginx/ssl/example.key;
}

Nach der Änderung den Webserver neustarten:

service nginx restart (oder /etc/init.d/nginx restart)

https / ssl sollte nun für eure Seite funktionieren. Da die Zertifikate selbst ausgestellt wurden müssen diese im Browser beim aufruf der Seite noch vertraut werden.
Wer das nicht will sollte sich ein Zertifikat mit hilfe von „Lets Encrypt“ erstellen.

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.