Nginx Installation & Konfiguration: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Robin.will (Diskussion | Beiträge)
Robin.will (Diskussion | Beiträge)
Zeile 67: Zeile 67:
=Konfiguration mit SSL in Nginx=
=Konfiguration mit SSL in Nginx=


==Snippet==
*Neue Datei in '''/etc/nginx/snippets/self-signed.conf''' anlegen und das Zertifikat und den Key eintragen
*Neue Datei in '''/etc/nginx/snippets/self-signed.conf''' anlegen und das Zertifikat und den Key eintragen
   
   
Zeile 91: Zeile 92:
  add_header X-Content-Type-Options nosniff;
  add_header X-Content-Type-Options nosniff;
  add_header X-XSS-Protection "1; mode=block";
  add_header X-XSS-Protection "1; mode=block";
==Seiten Einstellung==


*Nun werden die Einstelllungen der Seiten bearbeitet '''/etc/nginx/sites-available/zuxer.desanex.de.conf'''
*Nun werden die Einstelllungen der Seiten bearbeitet '''/etc/nginx/sites-available/zuxer.desanex.de.conf'''
Ändern der Ports zu 443 und trage die Erstellten snippets mit ein
Ändern der Ports zu 443 und trage die Erstellten snippets mit ein
Der zweite abschnitt dient zur Weiterleitung an HTTPS
<pre>  
<pre>  
  server {
  server {
Zeile 108: Zeile 112:
     . . .
     . . .
  }
  }
server {
    listen 80;
    listen [::]:80;
    server_name zuxer.desanex.de;
    return 301 https://$server_name$request_uri;
}
</pre>
</pre>

Version vom 24. März 2020, 11:26 Uhr

Installation

  • sudo apt-get install nginx

localhost

HTML Seite

  • Die Standard Seite befindet sich unter /var/www/html/
  • Erstelle einen neuen Ordner unter www
root@poppe:/# mkdir /var/www/zuxerBsp
root@poppe:/# cd /var/www/zuxerBsp/
root@poppe:/var/www/zuxerBsp# vi index.html
  • Ein Standard Beispiel für eine html Seite wäre
  <!doctype html>
  <html>
  <head>
    <meta charset="utf-8">
    <title>Hallo, Welt!</title>
  
  </head>
  <h1>Hallo Welt</h1>
  <body>
  Wir haben gerade erfolgreich unseren nginx Server aufgestellt!
  </body>
  </html>

Kofiguration

  • Zuerst wird die Konfigurationsdatei erstellt und anschließend bearbeitet
root@poppe:/etc/nginx/sites-available# touch zuxer.desanex.de.conf
root@poppe:/etc/nginx/sites-available# vi zuxer.desanex.de.conf

  • /etc/nginx/sites-available/zuxer.desanex.de.conf
server {
      listen 80;
      listen [::]:80;
      server_name zuxer.desanex.de;
      root /var/www/zuxerBsp;
      index index.html;
      location / {
              try_files $uri $uri/ =404;
      }
}
  • Danach einen softlink aufetc/nginx/sites-enable/zuxer.desanex.de.conf erstellen um die Seite zu aktivieren
ln -s ../sites-available/zuxer.desanex.de.conf ../sites-enabled/zuxer.desanex.de.conf

Selbstsigniertes Zertifikat erstellen

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
  • Nun folgt eine Abfrage an Informationen durch den Befehl
Country Name (2 letter code) [AU]:de
State or Province Name (full name) [Some-State]:rheinland-pfalz
Locality Name (eg, city) []:zweibruecken
Organization Name (eg, company) [Internet Widgits Pty Ltd]:tekkit
Organizational Unit Name (eg, section) []:control
Common Name (e.g. server FQDN or YOUR name) []:tekkit.gmbh
Email Address []:
  • Erstellen einer Diffie-Hellman group zum vermitteln der Schlüssel
openssl dhparam -out /etc/nginx/dhparam.pem 4096

Konfiguration mit SSL in Nginx

Snippet

  • Neue Datei in /etc/nginx/snippets/self-signed.conf anlegen und das Zertifikat und den Key eintragen
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
  • Eine weitere Datei in /etc/nginx/snippets/ssl-params.conf um SSL Einstellung einzutragen
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
ssl_session_timeout  10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off; # Requires nginx >= 1.5.9
ssl_stapling on; # Requires nginx >= 1.3.7
ssl_stapling_verify on; # Requires nginx => 1.3.7
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# Disable strict transport security for now. You can uncomment the following
# line if you understand the implications.
# add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

Seiten Einstellung

  • Nun werden die Einstelllungen der Seiten bearbeitet /etc/nginx/sites-available/zuxer.desanex.de.conf

Ändern der Ports zu 443 und trage die Erstellten snippets mit ein Der zweite abschnitt dient zur Weiterleitung an HTTPS

 
 server {
    listen 443 ssl;
    listen [::]:443 ssl;
    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;

    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm index.nginx-debian.html;

    . . .
 }
server {
    listen 80;
    listen [::]:80;

    server_name zuxer.desanex.de;

    return 301 https://$server_name$request_uri;
}