Nginx HTTPS inklusive Client Zertifikat: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 23: Zeile 23:
 
;SELinux-Probleme analysieren
 
;SELinux-Probleme analysieren
 
*ausearch -m avc -ts recent
 
*ausearch -m avc -ts recent
 +
 +
 +
==Wichtig==
 +
Das ca.crt muss auch angegeben werden.
 +
*cp ca.crt /etc/nginx/ssl
  
  
 
==Konfiguration erstellen==
 
==Konfiguration erstellen==
 
Die folgende Konfiguration wird als Datei gespeichert unter:
 
  
 
*vi /etc/nginx/conf.d/lila.it113.int.conf
 
*vi /etc/nginx/conf.d/lila.it113.int.conf

Version vom 26. März 2025, 17:47 Uhr

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


Wichtig

Das ca.crt muss auch angegeben werden.

  • cp ca.crt /etc/nginx/ssl


Konfiguration erstellen

  • 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_verify_client on;
    ssl_client_certificate /etc/nginx/ssl/ca.crt;

    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