Nginx HTTPS inklusive Client Zertifikat

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

nginx: HTTPS-VirtualHost für lila.it113.int unter Rocky Linux

Vorbereitung der Seite

Verzeichnis für Inhalte anlegen
  • mkdir -p /var/www/lila
Script zum Erzeugen der Startseite herunterladen (außerhalb des DocumentRoot)
Startseite erzeugen
  • ./webgen.sh lila > /var/www/lila/index.html

Fehleranalyse

Falls der Zugriff auf die Seite weiterhin blockiert wird, prüfe SELinux und stelle sicher, dass der korrekte Sicherheitskontext gesetzt ist:

Kontext setzen
  • chcon -Rt httpd_sys_content_t /var/www/lila
nginx neu laden
  • systemctl reload nginx
SELinux-Probleme analysieren
  • ausearch -m avc -ts recent


Konfiguration erstellen

Die folgende Konfiguration wird als Datei gespeichert unter:

  • vi /etc/nginx/conf.d/lila.it113.int.conf
server {
    listen 80;
    listen [::]:80;

    server_name lila.it113.int;

    # HTTP auf HTTPS weiterleiten
    return 301 https://$host$request_uri;
}

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

    server_name lila.it113.int;

    root /var/www/lila;
    index index.html index.htm;

    ssl_certificate /etc/nginx/ssl/lila.it113.int.crt;
    ssl_certificate_key /etc/nginx/ssl/lila.it113.int.key;

    location / {
        try_files $uri $uri/ =404;
    }
}


Erstellung eines KEYS und einer CSR auf dem Client

Privaten Schlüssel und CSR für den Client erstellen

Erstelle den privaten Schlüssel und die CSR für den Client
  • export CN="client"
  • cd ~
  • openssl req -new -nodes -newkey rsa:2048 -keyout $CN.key -out $CN.csr -subj "/CN=$CN"

Signierung der CSR

  • CSR ZUR CA schicken und signieren lassen.
Erhalt von client.crt

Zertifikat auf dem Client installieren

Signierung der CSR

Die CSR kann nun von einer CA signiert werden. Wenn du Let’s Encrypt oder eine interne CA verwendest, geh wie folgt vor:

Für Let’s Encrypt (mit certbot) eine Zertifikatsanforderung stellen
  • certbot certonly --nginx -d client.lila.it113.int
Alternativ, wenn du eine interne CA hast, signiere die CSR
  • openssl ca -in /etc/nginx/csr/client.lila.it113.int.csr -out /etc/nginx/ssl/client.lila.it113.int.crt

nginx neu starten

Nachdem du die Konfiguration angepasst hast, starte nginx neu, um die Änderungen zu übernehmen:

nginx neu starten
  • systemctl restart nginx