Nginx HTTPS inklusive Client Zertifikat: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 62: Zeile 62:
  
  
==Erstellung einer CSR für den Client==
+
=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
  
Um ein '''client.csr''' zu erstellen, geh wie folgt vor:
+
==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:
  
;Erstelle den privaten Schlüssel und die CSR für den Client
+
;Für eine interne CA signieren:
*openssl req -new -nodes -newkey rsa:2048 -keyout /etc/nginx/csr/client.lila.it113.int.key -out /etc/nginx/csr/client.lila.it113.int.csr -subj "/CN=client.lila.it113.int"
+
*openssl ca -in /home/user/.ssh/client.lila.it113.int.csr -out /home/user/.ssh/client.lila.it113.int.crt
 +
 
 +
==Zertifikat auf dem Client installieren==
 +
Das signierte Zertifikat wird dann auf dem Client gespeichert und in der Anwendung verwendet, die TLS-Authentifizierung benötigt.
 +
 
 +
;Zertifikat und Schlüssel auf dem Client installieren:
 +
*Das Zertifikat und der private Schlüssel müssen in der Anwendung konfiguriert werden, die die TLS-Verbindung nutzt, z. B. in einem Web-Client oder API-Authentifizierungs-Tool.
  
 
==Signierung der CSR==
 
==Signierung der CSR==

Version vom 26. März 2025, 17:27 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


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

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 eine interne CA signieren
  • openssl ca -in /home/user/.ssh/client.lila.it113.int.csr -out /home/user/.ssh/client.lila.it113.int.crt

Zertifikat auf dem Client installieren

Das signierte Zertifikat wird dann auf dem Client gespeichert und in der Anwendung verwendet, die TLS-Authentifizierung benötigt.

Zertifikat und Schlüssel auf dem Client installieren
  • Das Zertifikat und der private Schlüssel müssen in der Anwendung konfiguriert werden, die die TLS-Verbindung nutzt, z. B. in einem Web-Client oder API-Authentifizierungs-Tool.

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