<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://wiki.butzhammer.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Franky</id>
	<title>IT-Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.butzhammer.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Franky"/>
	<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Spezial:Beitr%C3%A4ge/Franky"/>
	<updated>2026-04-07T11:00:29Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Phoscon_mit_nginx_Reverse_Proxy_f%C3%BCr_Port_443&amp;diff=15</id>
		<title>Phoscon mit nginx Reverse Proxy für Port 443</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Phoscon_mit_nginx_Reverse_Proxy_f%C3%BCr_Port_443&amp;diff=15"/>
		<updated>2025-09-28T20:31:22Z</updated>

		<summary type="html">&lt;p&gt;Franky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Übersicht ==&lt;br /&gt;
Installation und Konfiguration von nginx als Reverse Proxy, der nur Port 443 verwendet, ohne den bestehenden Port 80 Dienst zu stören.&lt;br /&gt;
&lt;br /&gt;
Hier wird als Beispiel die IP Adresse 192.168.1.100 und der Hostname raspberrypi verwendet. Diese Angaben müssen selbstverständlich an die tatsächliche IP Adresse und den Hostnamen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
== Installationsschritte ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Port 443 für WebSocket bei deconz Dienst ändern ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stop deconz&lt;br /&gt;
sudo sytemctl stop deconz&lt;br /&gt;
&lt;br /&gt;
# Edit deconz configuration&lt;br /&gt;
sudo nano /lib/systemd/system/deconz.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei dieser Zeile den ws-port auf 8443 ändern:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ExecStart=/usr/bin/deCONZ -platform minimal --http-port=80 --ws-port=8443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konfiguration speichern und Deconz starten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# Start deconz&lt;br /&gt;
sudo systemctl start deconz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. nginx installieren und sofort stoppen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# System aktualisieren und nginx installieren&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install nginx -y&lt;br /&gt;
&lt;br /&gt;
# nginx sofort stoppen und Auto-Start deaktivieren&lt;br /&gt;
sudo systemctl stop nginx&lt;br /&gt;
sudo systemctl disable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Standard-Konfiguration entfernen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Default-Site deaktivieren (verwendet Port 80)&lt;br /&gt;
sudo rm /etc/nginx/sites-enabled/default&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. SSL-Zertifikat erstellen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Privaten Schlüssel generieren&lt;br /&gt;
sudo openssl genrsa -out /etc/ssl/private/nginx-selfsigned.key 2048&lt;br /&gt;
&lt;br /&gt;
# Zertifikat erstellen (10 Jahre gültig)&lt;br /&gt;
sudo openssl req -new -x509 -days 3650 \&lt;br /&gt;
  -key /etc/ssl/private/nginx-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/certs/nginx-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=DE/ST=Home/L=Internal/O=HomeLab/CN=raspberrypi.local&amp;quot; \&lt;br /&gt;
  -addext &amp;quot;subjectAltName=IP:192.168.1.100,DNS:raspberrypi.local,DNS:localhost&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. nginx Reverse Proxy Konfiguration erstellen ===&lt;br /&gt;
&#039;&#039;&#039;Datei:&#039;&#039;&#039; &amp;lt;code&amp;gt;/etc/nginx/sites-available/reverse-proxy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    server_name raspberrypi.local 192.168.1.100 localhost;&lt;br /&gt;
    &lt;br /&gt;
    # SSL-Zertifikate&lt;br /&gt;
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;&lt;br /&gt;
    &lt;br /&gt;
    # Moderne SSL-Einstellungen&lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    &lt;br /&gt;
    # Reverse Proxy zur Anwendung auf Port 80&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_pass http://localhost:80;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
        &lt;br /&gt;
        # Timeout-Einstellungen&lt;br /&gt;
        proxy_connect_timeout 30s;&lt;br /&gt;
        proxy_read_timeout 60s;&lt;br /&gt;
        proxy_send_timeout 60s;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Konfiguration aktivieren ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Konfiguration aktivieren&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/reverse-proxy /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
# Syntaxprüfung durchführen&lt;br /&gt;
sudo nginx -t&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erwartete Ausgabe:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx: configuration file /etc/nginx/nginx.conf test is successful&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Firewall konfigurieren (wenn vorhanden) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Nur HTTPS (Port 443) freigeben&lt;br /&gt;
sudo ufw allow 443&lt;br /&gt;
&lt;br /&gt;
# Port 80 NICHT freigeben (bleibt für bestehenden Dienst)&lt;br /&gt;
# sudo ufw allow 80  # AUSKOMMENTIERT lassen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. nginx starten ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# nginx starten&lt;br /&gt;
sudo systemctl start nginx&lt;br /&gt;
&lt;br /&gt;
# Automatischen Start aktivieren&lt;br /&gt;
sudo systemctl enable nginx&lt;br /&gt;
&lt;br /&gt;
# Status prüfen&lt;br /&gt;
sudo systemctl status nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verifikation ==&lt;br /&gt;
&lt;br /&gt;
=== Dienst-Status prüfen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# nginx Status&lt;br /&gt;
sudo systemctl status nginx&lt;br /&gt;
&lt;br /&gt;
# Ports prüfen&lt;br /&gt;
sudo netstat -tulpn | grep nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erwartetes Ergebnis:&#039;&#039;&#039;&lt;br /&gt;
* nginx läuft (&amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Hört nur auf Port 443 (&amp;lt;code&amp;gt;0.0.0.0:443&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 80 bleibt frei für bestehenden Dienst&lt;br /&gt;
&lt;br /&gt;
=== HTTPS-Verbindung testen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Lokal testen (selbstsigniertes Zertifikat ignorieren)&lt;br /&gt;
curl -k https://localhost&lt;br /&gt;
&lt;br /&gt;
# Mit IP testen&lt;br /&gt;
curl -k https://192.168.1.100&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Browser-Test ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://raspberrypi.local&lt;br /&gt;
https://192.168.1.100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Browser-Warnung wegen selbstsigniertem Zertifikat ist normal → &amp;quot;Erweitert&amp;quot; → &amp;quot;Trotzdem weiter&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsprobleme ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Detaillierte Fehler anzeigen&lt;br /&gt;
sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
# Logs prüfen&lt;br /&gt;
sudo tail -f /var/log/nginx/error.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Port-Konflikte ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Prüfen was auf Port 443 läuft&lt;br /&gt;
sudo lsof -i :443&lt;br /&gt;
&lt;br /&gt;
# Alle nginx Prozesse anzeigen&lt;br /&gt;
ps aux | grep nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zertifikat prüfen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Zertifikat-Informationen anzeigen&lt;br /&gt;
sudo openssl x509 -in /etc/ssl/certs/nginx-selfsigned.crt -text -noout&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Service-Management Befehle ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl start nginx&amp;lt;/code&amp;gt; || nginx starten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl stop nginx&amp;lt;/code&amp;gt; || nginx stoppen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl restart nginx&amp;lt;/code&amp;gt; || nginx neustarten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl reload nginx&amp;lt;/code&amp;gt; || Konfiguration neu laden&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl status nginx&amp;lt;/code&amp;gt; || Status anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo nginx -t&amp;lt;/code&amp;gt; || Konfiguration testen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Wichtige Dateien ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pfad !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nginx/sites-available/reverse-proxy&amp;lt;/code&amp;gt; || Reverse Proxy Konfiguration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nginx/sites-enabled/reverse-proxy&amp;lt;/code&amp;gt; || Aktivierte Konfiguration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/ssl/certs/nginx-selfsigned.crt&amp;lt;/code&amp;gt; || SSL Zertifikat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/ssl/private/nginx-selfsigned.key&amp;lt;/code&amp;gt; || SSL Privater Schlüssel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/log/nginx/error.log&amp;lt;/code&amp;gt; || Fehlerlogs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/log/nginx/access.log&amp;lt;/code&amp;gt; || Zugriffslogs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Erfolgskriterien ==&lt;br /&gt;
* nginx läuft ohne Fehler (&amp;lt;code&amp;gt;systemctl status nginx&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 443 ist belegt (&amp;lt;code&amp;gt;netstat -tulpn | grep :443&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 80 bleibt für bestehenden Dienst verfügbar&lt;br /&gt;
* HTTPS-Verbindung funktioniert (&amp;lt;code&amp;gt;curl -k https://localhost&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Reverse Proxy leitet korrekt weiter&lt;br /&gt;
* Keine Konflikte mit bestehenden Diensten&lt;br /&gt;
&lt;br /&gt;
[[Category:IoT]]&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Phoscon_mit_nginx_Reverse_Proxy_f%C3%BCr_Port_443&amp;diff=14</id>
		<title>Phoscon mit nginx Reverse Proxy für Port 443</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Phoscon_mit_nginx_Reverse_Proxy_f%C3%BCr_Port_443&amp;diff=14"/>
		<updated>2025-09-28T20:20:54Z</updated>

		<summary type="html">&lt;p&gt;Franky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Übersicht ==&lt;br /&gt;
Installation und Konfiguration von nginx als Reverse Proxy, der nur Port 443 verwendet, ohne den bestehenden Port 80 Dienst zu stören.&lt;br /&gt;
&lt;br /&gt;
Hier wird als Beispiel die IP Adresse 192.168.1.100 und der Hostname raspberrypi verwendet. Diese Angaben müssen selbstverständlich an die tatsächliche IP Adresse und den Hostnamen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
== Installationsschritte ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Port 443 für WebSocket bei deconz Dienst ändern ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nano /lib/systemd/system/deconz.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Bei dieser Zeile den ws-port auf 8443 ändern:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ExecStart=/usr/bin/deCONZ -platform minimal --http-port=80 --ws-port=8443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. nginx installieren und sofort stoppen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# System aktualisieren und nginx installieren&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install nginx -y&lt;br /&gt;
&lt;br /&gt;
# nginx sofort stoppen und Auto-Start deaktivieren&lt;br /&gt;
sudo systemctl stop nginx&lt;br /&gt;
sudo systemctl disable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Standard-Konfiguration entfernen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Default-Site deaktivieren (verwendet Port 80)&lt;br /&gt;
sudo rm /etc/nginx/sites-enabled/default&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. SSL-Zertifikat erstellen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Privaten Schlüssel generieren&lt;br /&gt;
sudo openssl genrsa -out /etc/ssl/private/nginx-selfsigned.key 2048&lt;br /&gt;
&lt;br /&gt;
# Zertifikat erstellen (10 Jahre gültig)&lt;br /&gt;
sudo openssl req -new -x509 -days 3650 \&lt;br /&gt;
  -key /etc/ssl/private/nginx-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/certs/nginx-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=DE/ST=Home/L=Internal/O=HomeLab/CN=raspberrypi.local&amp;quot; \&lt;br /&gt;
  -addext &amp;quot;subjectAltName=IP:192.168.1.100,DNS:raspberrypi.local,DNS:localhost&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. nginx Reverse Proxy Konfiguration erstellen ===&lt;br /&gt;
&#039;&#039;&#039;Datei:&#039;&#039;&#039; &amp;lt;code&amp;gt;/etc/nginx/sites-available/reverse-proxy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    server_name raspberrypi.local 192.168.1.100 localhost;&lt;br /&gt;
    &lt;br /&gt;
    # SSL-Zertifikate&lt;br /&gt;
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;&lt;br /&gt;
    &lt;br /&gt;
    # Moderne SSL-Einstellungen&lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    &lt;br /&gt;
    # Reverse Proxy zur Anwendung auf Port 80&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_pass http://localhost:80;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
        &lt;br /&gt;
        # Timeout-Einstellungen&lt;br /&gt;
        proxy_connect_timeout 30s;&lt;br /&gt;
        proxy_read_timeout 60s;&lt;br /&gt;
        proxy_send_timeout 60s;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Konfiguration aktivieren ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Konfiguration aktivieren&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/reverse-proxy /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
# Syntaxprüfung durchführen&lt;br /&gt;
sudo nginx -t&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erwartete Ausgabe:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx: configuration file /etc/nginx/nginx.conf test is successful&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Firewall konfigurieren (wenn vorhanden) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Nur HTTPS (Port 443) freigeben&lt;br /&gt;
sudo ufw allow 443&lt;br /&gt;
&lt;br /&gt;
# Port 80 NICHT freigeben (bleibt für bestehenden Dienst)&lt;br /&gt;
# sudo ufw allow 80  # AUSKOMMENTIERT lassen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. nginx starten ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# nginx starten&lt;br /&gt;
sudo systemctl start nginx&lt;br /&gt;
&lt;br /&gt;
# Automatischen Start aktivieren&lt;br /&gt;
sudo systemctl enable nginx&lt;br /&gt;
&lt;br /&gt;
# Status prüfen&lt;br /&gt;
sudo systemctl status nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verifikation ==&lt;br /&gt;
&lt;br /&gt;
=== Dienst-Status prüfen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# nginx Status&lt;br /&gt;
sudo systemctl status nginx&lt;br /&gt;
&lt;br /&gt;
# Ports prüfen&lt;br /&gt;
sudo netstat -tulpn | grep nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erwartetes Ergebnis:&#039;&#039;&#039;&lt;br /&gt;
* nginx läuft (&amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Hört nur auf Port 443 (&amp;lt;code&amp;gt;0.0.0.0:443&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 80 bleibt frei für bestehenden Dienst&lt;br /&gt;
&lt;br /&gt;
=== HTTPS-Verbindung testen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Lokal testen (selbstsigniertes Zertifikat ignorieren)&lt;br /&gt;
curl -k https://localhost&lt;br /&gt;
&lt;br /&gt;
# Mit IP testen&lt;br /&gt;
curl -k https://192.168.1.100&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Browser-Test ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://raspberrypi.local&lt;br /&gt;
https://192.168.1.100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Browser-Warnung wegen selbstsigniertem Zertifikat ist normal → &amp;quot;Erweitert&amp;quot; → &amp;quot;Trotzdem weiter&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsprobleme ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Detaillierte Fehler anzeigen&lt;br /&gt;
sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
# Logs prüfen&lt;br /&gt;
sudo tail -f /var/log/nginx/error.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Port-Konflikte ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Prüfen was auf Port 443 läuft&lt;br /&gt;
sudo lsof -i :443&lt;br /&gt;
&lt;br /&gt;
# Alle nginx Prozesse anzeigen&lt;br /&gt;
ps aux | grep nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zertifikat prüfen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Zertifikat-Informationen anzeigen&lt;br /&gt;
sudo openssl x509 -in /etc/ssl/certs/nginx-selfsigned.crt -text -noout&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Service-Management Befehle ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl start nginx&amp;lt;/code&amp;gt; || nginx starten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl stop nginx&amp;lt;/code&amp;gt; || nginx stoppen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl restart nginx&amp;lt;/code&amp;gt; || nginx neustarten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl reload nginx&amp;lt;/code&amp;gt; || Konfiguration neu laden&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl status nginx&amp;lt;/code&amp;gt; || Status anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo nginx -t&amp;lt;/code&amp;gt; || Konfiguration testen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Wichtige Dateien ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pfad !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nginx/sites-available/reverse-proxy&amp;lt;/code&amp;gt; || Reverse Proxy Konfiguration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nginx/sites-enabled/reverse-proxy&amp;lt;/code&amp;gt; || Aktivierte Konfiguration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/ssl/certs/nginx-selfsigned.crt&amp;lt;/code&amp;gt; || SSL Zertifikat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/ssl/private/nginx-selfsigned.key&amp;lt;/code&amp;gt; || SSL Privater Schlüssel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/log/nginx/error.log&amp;lt;/code&amp;gt; || Fehlerlogs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/log/nginx/access.log&amp;lt;/code&amp;gt; || Zugriffslogs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Erfolgskriterien ==&lt;br /&gt;
* nginx läuft ohne Fehler (&amp;lt;code&amp;gt;systemctl status nginx&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 443 ist belegt (&amp;lt;code&amp;gt;netstat -tulpn | grep :443&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 80 bleibt für bestehenden Dienst verfügbar&lt;br /&gt;
* HTTPS-Verbindung funktioniert (&amp;lt;code&amp;gt;curl -k https://localhost&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Reverse Proxy leitet korrekt weiter&lt;br /&gt;
* Keine Konflikte mit bestehenden Diensten&lt;br /&gt;
&lt;br /&gt;
[[Category:IoT]]&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Phoscon_mit_nginx_Reverse_Proxy_f%C3%BCr_Port_443&amp;diff=13</id>
		<title>Phoscon mit nginx Reverse Proxy für Port 443</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Phoscon_mit_nginx_Reverse_Proxy_f%C3%BCr_Port_443&amp;diff=13"/>
		<updated>2025-09-28T12:07:26Z</updated>

		<summary type="html">&lt;p&gt;Franky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Übersicht ==&lt;br /&gt;
Installation und Konfiguration von nginx als Reverse Proxy, der nur Port 443 verwendet, ohne den bestehenden Port 80 Dienst zu stören.&lt;br /&gt;
&lt;br /&gt;
Hier wird als Beispiel die IP Adresse 192.168.1.100 und der Hostname raspberrypi verwendet. Diese Angaben müssen selbstverständlich an die tatsächliche IP Adresse und den Hostnamen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
== Installationsschritte ==&lt;br /&gt;
&lt;br /&gt;
=== 1. nginx installieren und sofort stoppen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# System aktualisieren und nginx installieren&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install nginx -y&lt;br /&gt;
&lt;br /&gt;
# nginx sofort stoppen und Auto-Start deaktivieren&lt;br /&gt;
sudo systemctl stop nginx&lt;br /&gt;
sudo systemctl disable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Standard-Konfiguration entfernen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Default-Site deaktivieren (verwendet Port 80)&lt;br /&gt;
sudo rm /etc/nginx/sites-enabled/default&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. SSL-Zertifikat erstellen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Privaten Schlüssel generieren&lt;br /&gt;
sudo openssl genrsa -out /etc/ssl/private/nginx-selfsigned.key 2048&lt;br /&gt;
&lt;br /&gt;
# Zertifikat erstellen (10 Jahre gültig)&lt;br /&gt;
sudo openssl req -new -x509 -days 3650 \&lt;br /&gt;
  -key /etc/ssl/private/nginx-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/certs/nginx-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=DE/ST=Home/L=Internal/O=HomeLab/CN=raspberrypi.local&amp;quot; \&lt;br /&gt;
  -addext &amp;quot;subjectAltName=IP:192.168.1.100,DNS:raspberrypi.local,DNS:localhost&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. nginx Reverse Proxy Konfiguration erstellen ===&lt;br /&gt;
&#039;&#039;&#039;Datei:&#039;&#039;&#039; &amp;lt;code&amp;gt;/etc/nginx/sites-available/reverse-proxy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    server_name raspberrypi.local 192.168.1.100 localhost;&lt;br /&gt;
    &lt;br /&gt;
    # SSL-Zertifikate&lt;br /&gt;
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;&lt;br /&gt;
    &lt;br /&gt;
    # Moderne SSL-Einstellungen&lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    &lt;br /&gt;
    # Reverse Proxy zur Anwendung auf Port 80&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_pass http://localhost:80;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
        &lt;br /&gt;
        # Timeout-Einstellungen&lt;br /&gt;
        proxy_connect_timeout 30s;&lt;br /&gt;
        proxy_read_timeout 60s;&lt;br /&gt;
        proxy_send_timeout 60s;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Konfiguration aktivieren ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Konfiguration aktivieren&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/reverse-proxy /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
# Syntaxprüfung durchführen&lt;br /&gt;
sudo nginx -t&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erwartete Ausgabe:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx: configuration file /etc/nginx/nginx.conf test is successful&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Firewall konfigurieren (wenn vorhanden) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Nur HTTPS (Port 443) freigeben&lt;br /&gt;
sudo ufw allow 443&lt;br /&gt;
&lt;br /&gt;
# Port 80 NICHT freigeben (bleibt für bestehenden Dienst)&lt;br /&gt;
# sudo ufw allow 80  # AUSKOMMENTIERT lassen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. nginx starten ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# nginx starten&lt;br /&gt;
sudo systemctl start nginx&lt;br /&gt;
&lt;br /&gt;
# Automatischen Start aktivieren&lt;br /&gt;
sudo systemctl enable nginx&lt;br /&gt;
&lt;br /&gt;
# Status prüfen&lt;br /&gt;
sudo systemctl status nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verifikation ==&lt;br /&gt;
&lt;br /&gt;
=== Dienst-Status prüfen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# nginx Status&lt;br /&gt;
sudo systemctl status nginx&lt;br /&gt;
&lt;br /&gt;
# Ports prüfen&lt;br /&gt;
sudo netstat -tulpn | grep nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erwartetes Ergebnis:&#039;&#039;&#039;&lt;br /&gt;
* nginx läuft (&amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Hört nur auf Port 443 (&amp;lt;code&amp;gt;0.0.0.0:443&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 80 bleibt frei für bestehenden Dienst&lt;br /&gt;
&lt;br /&gt;
=== HTTPS-Verbindung testen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Lokal testen (selbstsigniertes Zertifikat ignorieren)&lt;br /&gt;
curl -k https://localhost&lt;br /&gt;
&lt;br /&gt;
# Mit IP testen&lt;br /&gt;
curl -k https://192.168.1.100&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Browser-Test ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://raspberrypi.local&lt;br /&gt;
https://192.168.1.100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Browser-Warnung wegen selbstsigniertem Zertifikat ist normal → &amp;quot;Erweitert&amp;quot; → &amp;quot;Trotzdem weiter&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsprobleme ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Detaillierte Fehler anzeigen&lt;br /&gt;
sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
# Logs prüfen&lt;br /&gt;
sudo tail -f /var/log/nginx/error.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Port-Konflikte ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Prüfen was auf Port 443 läuft&lt;br /&gt;
sudo lsof -i :443&lt;br /&gt;
&lt;br /&gt;
# Alle nginx Prozesse anzeigen&lt;br /&gt;
ps aux | grep nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zertifikat prüfen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Zertifikat-Informationen anzeigen&lt;br /&gt;
sudo openssl x509 -in /etc/ssl/certs/nginx-selfsigned.crt -text -noout&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Service-Management Befehle ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl start nginx&amp;lt;/code&amp;gt; || nginx starten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl stop nginx&amp;lt;/code&amp;gt; || nginx stoppen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl restart nginx&amp;lt;/code&amp;gt; || nginx neustarten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl reload nginx&amp;lt;/code&amp;gt; || Konfiguration neu laden&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl status nginx&amp;lt;/code&amp;gt; || Status anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo nginx -t&amp;lt;/code&amp;gt; || Konfiguration testen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Wichtige Dateien ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pfad !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nginx/sites-available/reverse-proxy&amp;lt;/code&amp;gt; || Reverse Proxy Konfiguration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nginx/sites-enabled/reverse-proxy&amp;lt;/code&amp;gt; || Aktivierte Konfiguration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/ssl/certs/nginx-selfsigned.crt&amp;lt;/code&amp;gt; || SSL Zertifikat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/ssl/private/nginx-selfsigned.key&amp;lt;/code&amp;gt; || SSL Privater Schlüssel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/log/nginx/error.log&amp;lt;/code&amp;gt; || Fehlerlogs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/log/nginx/access.log&amp;lt;/code&amp;gt; || Zugriffslogs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Erfolgskriterien ==&lt;br /&gt;
* nginx läuft ohne Fehler (&amp;lt;code&amp;gt;systemctl status nginx&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 443 ist belegt (&amp;lt;code&amp;gt;netstat -tulpn | grep :443&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 80 bleibt für bestehenden Dienst verfügbar&lt;br /&gt;
* HTTPS-Verbindung funktioniert (&amp;lt;code&amp;gt;curl -k https://localhost&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Reverse Proxy leitet korrekt weiter&lt;br /&gt;
* Keine Konflikte mit bestehenden Diensten&lt;br /&gt;
&lt;br /&gt;
[[Category:IoT]]&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=12</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=12"/>
		<updated>2025-09-28T12:06:18Z</updated>

		<summary type="html">&lt;p&gt;Franky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Willkommen beim IT-Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Inhaltsverzeichnis ===&lt;br /&gt;
&lt;br /&gt;
==== IoT ====&lt;br /&gt;
* [[Phoscon mit nginx Reverse Proxy für Port 443]]&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=11</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=11"/>
		<updated>2025-09-28T12:04:58Z</updated>

		<summary type="html">&lt;p&gt;Franky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Willkommen beim IT-Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Inhaltsverzeichnis ===&lt;br /&gt;
&lt;br /&gt;
[[Phoscon mit nginx Reverse Proxy für Port 443]]&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=10</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=10"/>
		<updated>2025-09-28T12:03:13Z</updated>

		<summary type="html">&lt;p&gt;Franky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Willkommen beim IT-Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Inhaltsverzeichnis ===&lt;br /&gt;
&lt;br /&gt;
* [[Kategorie:IoT]]&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=9</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=9"/>
		<updated>2025-09-28T12:03:05Z</updated>

		<summary type="html">&lt;p&gt;Franky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Willkommen beim IT-Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Inhaltsverzeichnis ===&lt;br /&gt;
&lt;br /&gt;
* [Kategorie:IoT]&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Phoscon_mit_nginx_Reverse_Proxy_f%C3%BCr_Port_443&amp;diff=7</id>
		<title>Phoscon mit nginx Reverse Proxy für Port 443</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Phoscon_mit_nginx_Reverse_Proxy_f%C3%BCr_Port_443&amp;diff=7"/>
		<updated>2025-09-28T12:01:32Z</updated>

		<summary type="html">&lt;p&gt;Franky: /* Erfolgskriterien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Übersicht ==&lt;br /&gt;
Installation und Konfiguration von nginx als Reverse Proxy, der nur Port 443 verwendet, ohne den bestehenden Port 80 Dienst zu stören.&lt;br /&gt;
&lt;br /&gt;
Hier wird als Beispiel die IP Adresse 192.168.1.100 und der Hostname raspberrypi verwendet. Diese Angaben müssen selbstverständlich an die tatsächliche IP Adresse und den Hostnamen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
== Installationsschritte ==&lt;br /&gt;
&lt;br /&gt;
=== 1. nginx installieren und sofort stoppen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# System aktualisieren und nginx installieren&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install nginx -y&lt;br /&gt;
&lt;br /&gt;
# nginx sofort stoppen und Auto-Start deaktivieren&lt;br /&gt;
sudo systemctl stop nginx&lt;br /&gt;
sudo systemctl disable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Standard-Konfiguration entfernen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Default-Site deaktivieren (verwendet Port 80)&lt;br /&gt;
sudo rm /etc/nginx/sites-enabled/default&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. SSL-Zertifikat erstellen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Privaten Schlüssel generieren&lt;br /&gt;
sudo openssl genrsa -out /etc/ssl/private/nginx-selfsigned.key 2048&lt;br /&gt;
&lt;br /&gt;
# Zertifikat erstellen (10 Jahre gültig)&lt;br /&gt;
sudo openssl req -new -x509 -days 3650 \&lt;br /&gt;
  -key /etc/ssl/private/nginx-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/certs/nginx-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=DE/ST=Home/L=Internal/O=HomeLab/CN=raspberrypi.local&amp;quot; \&lt;br /&gt;
  -addext &amp;quot;subjectAltName=IP:192.168.1.100,DNS:raspberrypi.local,DNS:localhost&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. nginx Reverse Proxy Konfiguration erstellen ===&lt;br /&gt;
&#039;&#039;&#039;Datei:&#039;&#039;&#039; &amp;lt;code&amp;gt;/etc/nginx/sites-available/reverse-proxy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    server_name raspberrypi.local 192.168.1.100 localhost;&lt;br /&gt;
    &lt;br /&gt;
    # SSL-Zertifikate&lt;br /&gt;
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;&lt;br /&gt;
    &lt;br /&gt;
    # Moderne SSL-Einstellungen&lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    &lt;br /&gt;
    # Reverse Proxy zur Anwendung auf Port 80&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_pass http://localhost:80;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
        &lt;br /&gt;
        # Timeout-Einstellungen&lt;br /&gt;
        proxy_connect_timeout 30s;&lt;br /&gt;
        proxy_read_timeout 60s;&lt;br /&gt;
        proxy_send_timeout 60s;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Konfiguration aktivieren ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Konfiguration aktivieren&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/reverse-proxy /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
# Syntaxprüfung durchführen&lt;br /&gt;
sudo nginx -t&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erwartete Ausgabe:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx: configuration file /etc/nginx/nginx.conf test is successful&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Firewall konfigurieren (wenn vorhanden) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Nur HTTPS (Port 443) freigeben&lt;br /&gt;
sudo ufw allow 443&lt;br /&gt;
&lt;br /&gt;
# Port 80 NICHT freigeben (bleibt für bestehenden Dienst)&lt;br /&gt;
# sudo ufw allow 80  # AUSKOMMENTIERT lassen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. nginx starten ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# nginx starten&lt;br /&gt;
sudo systemctl start nginx&lt;br /&gt;
&lt;br /&gt;
# Automatischen Start aktivieren&lt;br /&gt;
sudo systemctl enable nginx&lt;br /&gt;
&lt;br /&gt;
# Status prüfen&lt;br /&gt;
sudo systemctl status nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verifikation ==&lt;br /&gt;
&lt;br /&gt;
=== Dienst-Status prüfen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# nginx Status&lt;br /&gt;
sudo systemctl status nginx&lt;br /&gt;
&lt;br /&gt;
# Ports prüfen&lt;br /&gt;
sudo netstat -tulpn | grep nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erwartetes Ergebnis:&#039;&#039;&#039;&lt;br /&gt;
* nginx läuft (&amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Hört nur auf Port 443 (&amp;lt;code&amp;gt;0.0.0.0:443&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 80 bleibt frei für bestehenden Dienst&lt;br /&gt;
&lt;br /&gt;
=== HTTPS-Verbindung testen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Lokal testen (selbstsigniertes Zertifikat ignorieren)&lt;br /&gt;
curl -k https://localhost&lt;br /&gt;
&lt;br /&gt;
# Mit IP testen&lt;br /&gt;
curl -k https://192.168.1.100&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Browser-Test ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://raspberrypi.local&lt;br /&gt;
https://192.168.1.100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Browser-Warnung wegen selbstsigniertem Zertifikat ist normal → &amp;quot;Erweitert&amp;quot; → &amp;quot;Trotzdem weiter&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsprobleme ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Detaillierte Fehler anzeigen&lt;br /&gt;
sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
# Logs prüfen&lt;br /&gt;
sudo tail -f /var/log/nginx/error.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Port-Konflikte ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Prüfen was auf Port 443 läuft&lt;br /&gt;
sudo lsof -i :443&lt;br /&gt;
&lt;br /&gt;
# Alle nginx Prozesse anzeigen&lt;br /&gt;
ps aux | grep nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zertifikat prüfen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Zertifikat-Informationen anzeigen&lt;br /&gt;
sudo openssl x509 -in /etc/ssl/certs/nginx-selfsigned.crt -text -noout&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Service-Management Befehle ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl start nginx&amp;lt;/code&amp;gt; || nginx starten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl stop nginx&amp;lt;/code&amp;gt; || nginx stoppen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl restart nginx&amp;lt;/code&amp;gt; || nginx neustarten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl reload nginx&amp;lt;/code&amp;gt; || Konfiguration neu laden&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl status nginx&amp;lt;/code&amp;gt; || Status anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo nginx -t&amp;lt;/code&amp;gt; || Konfiguration testen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Wichtige Dateien ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pfad !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nginx/sites-available/reverse-proxy&amp;lt;/code&amp;gt; || Reverse Proxy Konfiguration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nginx/sites-enabled/reverse-proxy&amp;lt;/code&amp;gt; || Aktivierte Konfiguration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/ssl/certs/nginx-selfsigned.crt&amp;lt;/code&amp;gt; || SSL Zertifikat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/ssl/private/nginx-selfsigned.key&amp;lt;/code&amp;gt; || SSL Privater Schlüssel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/log/nginx/error.log&amp;lt;/code&amp;gt; || Fehlerlogs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/log/nginx/access.log&amp;lt;/code&amp;gt; || Zugriffslogs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Erfolgskriterien ==&lt;br /&gt;
* nginx läuft ohne Fehler (&amp;lt;code&amp;gt;systemctl status nginx&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 443 ist belegt (&amp;lt;code&amp;gt;netstat -tulpn | grep :443&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 80 bleibt für bestehenden Dienst verfügbar&lt;br /&gt;
* HTTPS-Verbindung funktioniert (&amp;lt;code&amp;gt;curl -k https://localhost&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Reverse Proxy leitet korrekt weiter&lt;br /&gt;
* Keine Konflikte mit bestehenden Diensten&lt;br /&gt;
&lt;br /&gt;
[[index.php?title=Kategorie:IoT]]&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Phoscon_mit_nginx_Reverse_Proxy_f%C3%BCr_Port_443&amp;diff=6</id>
		<title>Phoscon mit nginx Reverse Proxy für Port 443</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Phoscon_mit_nginx_Reverse_Proxy_f%C3%BCr_Port_443&amp;diff=6"/>
		<updated>2025-09-28T12:00:38Z</updated>

		<summary type="html">&lt;p&gt;Franky: Die Seite wurde neu angelegt: „== Übersicht == Installation und Konfiguration von nginx als Reverse Proxy, der nur Port 443 verwendet, ohne den bestehenden Port 80 Dienst zu stören.  Hier wird als Beispiel die IP Adresse 192.168.1.100 und der Hostname raspberrypi verwendet. Diese Angaben müssen selbstverständlich an die tatsächliche IP Adresse und den Hostnamen angepasst werden.  == Installationsschritte ==  === 1. nginx installieren und sofort stoppen === &amp;lt;syntaxhighlight lang=&amp;quot;b…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Übersicht ==&lt;br /&gt;
Installation und Konfiguration von nginx als Reverse Proxy, der nur Port 443 verwendet, ohne den bestehenden Port 80 Dienst zu stören.&lt;br /&gt;
&lt;br /&gt;
Hier wird als Beispiel die IP Adresse 192.168.1.100 und der Hostname raspberrypi verwendet. Diese Angaben müssen selbstverständlich an die tatsächliche IP Adresse und den Hostnamen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
== Installationsschritte ==&lt;br /&gt;
&lt;br /&gt;
=== 1. nginx installieren und sofort stoppen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# System aktualisieren und nginx installieren&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install nginx -y&lt;br /&gt;
&lt;br /&gt;
# nginx sofort stoppen und Auto-Start deaktivieren&lt;br /&gt;
sudo systemctl stop nginx&lt;br /&gt;
sudo systemctl disable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Standard-Konfiguration entfernen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Default-Site deaktivieren (verwendet Port 80)&lt;br /&gt;
sudo rm /etc/nginx/sites-enabled/default&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. SSL-Zertifikat erstellen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Privaten Schlüssel generieren&lt;br /&gt;
sudo openssl genrsa -out /etc/ssl/private/nginx-selfsigned.key 2048&lt;br /&gt;
&lt;br /&gt;
# Zertifikat erstellen (10 Jahre gültig)&lt;br /&gt;
sudo openssl req -new -x509 -days 3650 \&lt;br /&gt;
  -key /etc/ssl/private/nginx-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/certs/nginx-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=DE/ST=Home/L=Internal/O=HomeLab/CN=raspberrypi.local&amp;quot; \&lt;br /&gt;
  -addext &amp;quot;subjectAltName=IP:192.168.1.100,DNS:raspberrypi.local,DNS:localhost&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. nginx Reverse Proxy Konfiguration erstellen ===&lt;br /&gt;
&#039;&#039;&#039;Datei:&#039;&#039;&#039; &amp;lt;code&amp;gt;/etc/nginx/sites-available/reverse-proxy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    server_name raspberrypi.local 192.168.1.100 localhost;&lt;br /&gt;
    &lt;br /&gt;
    # SSL-Zertifikate&lt;br /&gt;
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;&lt;br /&gt;
    &lt;br /&gt;
    # Moderne SSL-Einstellungen&lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    &lt;br /&gt;
    # Reverse Proxy zur Anwendung auf Port 80&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_pass http://localhost:80;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
        &lt;br /&gt;
        # Timeout-Einstellungen&lt;br /&gt;
        proxy_connect_timeout 30s;&lt;br /&gt;
        proxy_read_timeout 60s;&lt;br /&gt;
        proxy_send_timeout 60s;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Konfiguration aktivieren ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Konfiguration aktivieren&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/reverse-proxy /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
# Syntaxprüfung durchführen&lt;br /&gt;
sudo nginx -t&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erwartete Ausgabe:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx: configuration file /etc/nginx/nginx.conf test is successful&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Firewall konfigurieren (wenn vorhanden) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Nur HTTPS (Port 443) freigeben&lt;br /&gt;
sudo ufw allow 443&lt;br /&gt;
&lt;br /&gt;
# Port 80 NICHT freigeben (bleibt für bestehenden Dienst)&lt;br /&gt;
# sudo ufw allow 80  # AUSKOMMENTIERT lassen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. nginx starten ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# nginx starten&lt;br /&gt;
sudo systemctl start nginx&lt;br /&gt;
&lt;br /&gt;
# Automatischen Start aktivieren&lt;br /&gt;
sudo systemctl enable nginx&lt;br /&gt;
&lt;br /&gt;
# Status prüfen&lt;br /&gt;
sudo systemctl status nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verifikation ==&lt;br /&gt;
&lt;br /&gt;
=== Dienst-Status prüfen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# nginx Status&lt;br /&gt;
sudo systemctl status nginx&lt;br /&gt;
&lt;br /&gt;
# Ports prüfen&lt;br /&gt;
sudo netstat -tulpn | grep nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erwartetes Ergebnis:&#039;&#039;&#039;&lt;br /&gt;
* nginx läuft (&amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Hört nur auf Port 443 (&amp;lt;code&amp;gt;0.0.0.0:443&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Port 80 bleibt frei für bestehenden Dienst&lt;br /&gt;
&lt;br /&gt;
=== HTTPS-Verbindung testen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Lokal testen (selbstsigniertes Zertifikat ignorieren)&lt;br /&gt;
curl -k https://localhost&lt;br /&gt;
&lt;br /&gt;
# Mit IP testen&lt;br /&gt;
curl -k https://192.168.1.100&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Browser-Test ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://raspberrypi.local&lt;br /&gt;
https://192.168.1.100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Browser-Warnung wegen selbstsigniertem Zertifikat ist normal → &amp;quot;Erweitert&amp;quot; → &amp;quot;Trotzdem weiter&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsprobleme ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Detaillierte Fehler anzeigen&lt;br /&gt;
sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
# Logs prüfen&lt;br /&gt;
sudo tail -f /var/log/nginx/error.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Port-Konflikte ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Prüfen was auf Port 443 läuft&lt;br /&gt;
sudo lsof -i :443&lt;br /&gt;
&lt;br /&gt;
# Alle nginx Prozesse anzeigen&lt;br /&gt;
ps aux | grep nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zertifikat prüfen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Zertifikat-Informationen anzeigen&lt;br /&gt;
sudo openssl x509 -in /etc/ssl/certs/nginx-selfsigned.crt -text -noout&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Service-Management Befehle ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl start nginx&amp;lt;/code&amp;gt; || nginx starten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl stop nginx&amp;lt;/code&amp;gt; || nginx stoppen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl restart nginx&amp;lt;/code&amp;gt; || nginx neustarten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl reload nginx&amp;lt;/code&amp;gt; || Konfiguration neu laden&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo systemctl status nginx&amp;lt;/code&amp;gt; || Status anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sudo nginx -t&amp;lt;/code&amp;gt; || Konfiguration testen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Wichtige Dateien ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pfad !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nginx/sites-available/reverse-proxy&amp;lt;/code&amp;gt; || Reverse Proxy Konfiguration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nginx/sites-enabled/reverse-proxy&amp;lt;/code&amp;gt; || Aktivierte Konfiguration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/ssl/certs/nginx-selfsigned.crt&amp;lt;/code&amp;gt; || SSL Zertifikat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/ssl/private/nginx-selfsigned.key&amp;lt;/code&amp;gt; || SSL Privater Schlüssel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/log/nginx/error.log&amp;lt;/code&amp;gt; || Fehlerlogs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/log/nginx/access.log&amp;lt;/code&amp;gt; || Zugriffslogs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Erfolgskriterien ==&lt;br /&gt;
* {{Done}} nginx läuft ohne Fehler (&amp;lt;code&amp;gt;systemctl status nginx&amp;lt;/code&amp;gt;)&lt;br /&gt;
* {{Done}} Port 443 ist belegt (&amp;lt;code&amp;gt;netstat -tulpn | grep :443&amp;lt;/code&amp;gt;)&lt;br /&gt;
* {{Done}} Port 80 bleibt für bestehenden Dienst verfügbar&lt;br /&gt;
* {{Done}} HTTPS-Verbindung funktioniert (&amp;lt;code&amp;gt;curl -k https://localhost&amp;lt;/code&amp;gt;)&lt;br /&gt;
* {{Done}} Reverse Proxy leitet korrekt weiter&lt;br /&gt;
* {{Done}} Keine Konflikte mit bestehenden Diensten&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:IoT]]&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=5</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=5"/>
		<updated>2025-09-28T11:55:29Z</updated>

		<summary type="html">&lt;p&gt;Franky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Willkommen beim IT-Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Inhaltsverzeichnis ===&lt;br /&gt;
&lt;br /&gt;
==== IoT ====&lt;br /&gt;
&lt;br /&gt;
* [[Phoscon mit nginx Reverse Proxy für Port 443]]&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=4</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=4"/>
		<updated>2025-09-28T11:51:28Z</updated>

		<summary type="html">&lt;p&gt;Franky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Willkommen beim IT-Wiki ==&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=3</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=3"/>
		<updated>2025-09-28T11:48:00Z</updated>

		<summary type="html">&lt;p&gt;Franky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Willkommen beim IT-Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Inhaltsverzeichnis ===&lt;br /&gt;
&lt;br /&gt;
==== Deconz ====&lt;br /&gt;
* [[Deconz: nginx als Reverse Proxy für Port 433]]&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
	<entry>
		<id>http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=2</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="http://wiki.butzhammer.de/index.php?title=Hauptseite&amp;diff=2"/>
		<updated>2025-09-28T11:10:54Z</updated>

		<summary type="html">&lt;p&gt;Franky: Der Seiteninhalt wurde durch einen anderen Text ersetzt: „== Willkommen beim IT-Wiki ==“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Willkommen beim IT-Wiki ==&lt;/div&gt;</summary>
		<author><name>Franky</name></author>
	</entry>
</feed>