Nginx HTTPS inklusive Client Zertifikat: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 50: | Zeile 50: | ||
root /var/www/lila; | root /var/www/lila; | ||
index index.html index.htm; | 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 /etc/nginx/ssl/lila.it113.int.crt; | ||
| Zeile 59: | Zeile 62: | ||
} | } | ||
</pre> | </pre> | ||
| − | |||
| − | |||
=Erstellung eines KEYS und einer CSR auf dem Client= | =Erstellung eines KEYS und einer CSR auf dem Client= | ||
Version vom 26. März 2025, 17:46 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)
- cd /root
- wget https://xinux.de/downloads/html/webgen.sh
- chmod +x webgen.sh
- 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_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