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.