[geloest] Nginx Umleitung von http auf https

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
sharbich
Beiträge: 284
Registriert: 27.09.2013 21:12:40

[geloest] Nginx Umleitung von http auf https

Beitrag von sharbich » 09.11.2023 07:45:38

Hallo Ihr Lieben,

ich bin auf der Suche nach einer Konfiguration um einen FQDN von http auf https umzuleiten. Entsprechende SSL Zertifikate habe ich erstellt.

Der FQDN zeigt auf ein Host im Netz wo eine Website läuft auf der keine Einstellungen vorgenommen werden können (Umstellung auf https auf dem Host nicht möglich).

Für Hilfe wäre ich sehr dankbar.

Mit freundlichen Grüßen

Stefan Harbich
Zuletzt geändert von sharbich am 13.11.2023 13:01:55, insgesamt 1-mal geändert.

Benutzeravatar
Draal
Beiträge: 543
Registriert: 11.03.2005 14:45:26

Re: Nginx Umleitung von http auf https

Beitrag von Draal » 09.11.2023 09:27:14

sharbich hat geschrieben: ↑ zum Beitrag ↑
09.11.2023 07:45:38
Der FQDN zeigt auf ein Host im Netz wo eine Website läuft auf der keine Einstellungen vorgenommen werden können.
Wenn ich das richtig sehe, hat das weniger mit der eigentlichen Website zu tun, sondern mit der Konfigurationdatei des Webservers, auf dem sie gehostet wird, also vermutlich in /etc/nginx/sites-available/<Konfigurationsdatei>

etwa so:

Code: Alles auswählen

server {
   . . .
   server_name FQDN.com;
   rewrite ^/(.*)$ https://FQDN.com/$1 permanent;
   . . .
   }
Allerdings nutze ich kein NGINX, aber so ähnlich lege ich das auf meinem Apachen an.

sharbich
Beiträge: 284
Registriert: 27.09.2013 21:12:40

Re: Nginx Umleitung von http auf https

Beitrag von sharbich » 09.11.2023 09:37:05

Hallo,
der Host unterstützt kein https. In der nginx Konfiguration muss ich die SSL Zertifikate hinterlegen und auf http der Host IP umleiten. Aber wie?
Gruß von Stefan Harbich

reox
Beiträge: 2464
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Nginx Umleitung von http auf https

Beitrag von reox » 09.11.2023 10:02:56

sharbich hat geschrieben: ↑ zum Beitrag ↑
09.11.2023 07:45:38
Der FQDN zeigt auf ein Host im Netz wo eine Website läuft auf der keine Einstellungen vorgenommen werden können (Umstellung auf https auf dem Host nicht möglich).
Also du hast einen Webserver auf dem eine http Seite rennt, du die config aber nicht ändern kannst?
Ich sehe da nur zwei Möglichkeiten:
1) Reverse Proxy, allerdings ist dann die Kommunikation zwischen Proxy und Host auch nur http
2) Du kannst zumindest eine zweiten virtuellen host für http und https anlegen. Dann könntest du per html weiterleitung von der http auf die https seite leiten.

sharbich
Beiträge: 284
Registriert: 27.09.2013 21:12:40

Re: Nginx Umleitung von http auf https

Beitrag von sharbich » 09.11.2023 10:45:27

reox hat geschrieben: ↑ zum Beitrag ↑
09.11.2023 10:02:56
sharbich hat geschrieben: ↑ zum Beitrag ↑
09.11.2023 07:45:38
Der FQDN zeigt auf ein Host im Netz wo eine Website läuft auf der keine Einstellungen vorgenommen werden können (Umstellung auf https auf dem Host nicht möglich).
Ich sehe da nur zwei Möglichkeiten:
1) Reverse Proxy, allerdings ist dann die Kommunikation zwischen Proxy und Host auch nur http
2) Du kannst zumindest eine zweiten virtuellen host für http und https anlegen. Dann könntest du per html weiterleitung von der http auf die https seite leiten.
Ich hatte das immer so gelöst das ich eine weitere IP angelegt habe und dann über den Reverse Proxy eine Umleitung gemacht habe siehe Beispiel
mgimx.conf
die virtuelle IP Adresse von momme01 ist 192.168.20.100 und die IP von den Host ist die 192.168.0.1. Dort läuft auch ein Webserver der nicht auf https umgestellt werden kann.

Code: Alles auswählen

server {
    # Update this line to be your domain
    server_name mome01.intern.example.de;
    # These shouldn't need to be changed
    listen mome01.intern.example.de:80;
    return 301 https://$host$request_uri;
}
server {
    server_name mome01.intern.example.de;
    listen mome01.intern.example.de:443 ssl; # managed by Harbich
    ssl_certificate /etc/ssl/certs/mome01.intern.exemple.de.crt; # managed by Harbich
    ssl_certificate_key /etc/ssl/private/mome01.intern.exemple.de.key; # managed by Harbich
    ssl_dhparam /etc/ssl/certs/dhparams.pem; # managed by Harbich
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    location / {
        proxy_pass https://192.168.0.1;
    }
}
Kann ich das auch ohne einer weiteren IP lösen?
Gruß von Stefan Harbich

reox
Beiträge: 2464
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Nginx Umleitung von http auf https

Beitrag von reox » 09.11.2023 11:48:20

Ok nur damit ich es auch verstehe:
  • 192.168.0.1 ist der aktuelle webserver der eine Webseite nur per http ausliefert und an dessen config man nichts ändern kann
  • du hast einen reverse proxy auf 192.168.20.100 unter deiner kontrolle
  • der reverse proxy kann sowohl http als auch https
  • du kannst den DNS der auf 192.168.0.1 verweist umstellen auf 192.168.20.100
Dann ist doch alles fertig?
sharbich hat geschrieben: ↑ zum Beitrag ↑
09.11.2023 10:45:27
Dort läuft auch ein Webserver der nicht auf https umgestellt werden kann
und
sharbich hat geschrieben: ↑ zum Beitrag ↑
09.11.2023 10:45:27
proxy_pass https://192.168.0.1;
ist dann aber ein typo oder?

sharbich
Beiträge: 284
Registriert: 27.09.2013 21:12:40

Re: Nginx Umleitung von http auf https

Beitrag von sharbich » 13.11.2023 09:06:42

Hallo Ihr Lieben,

leider bekomme ich das nicht so richtig hin. Ich versuche das Problem etwas anders zu beschreiben.
Ich habe ein Modem / Router von der Firma DrayTek Vigor 167. Dieses Gerät hat ein eigenes Betriebssystem. Darauf läuft ein Apache Webserver. Dies sehe ich immer wenn ich mich über den Revers Proxy von Nginx über die folgende URL "http://mome01.intern.example.com" mit dem Gerät verbinde. Es erscheint dann folgende Meldung "Apache2 Debian Default Page". Die IP-Adresse die sich hinter der URL verbirgt ist die 192.168.200.100. Meine Nginx Konfiguration des virtuellen Server's sieht wie folgt aus.

Code: Alles auswählen

root@dsme01:~# cat /etc/nginx/sites-available/mome01.conf
server {
    # Update this line to be your domain
    server_name mome01.intern.example.com;
    # These shouldn't need to be changed
    listen mome01.intern.example.com:80;
    return 301 https://$host$request_uri;
}
server {
    server_name mome01.intern.example.com;
    listen mome01.intern.harnet.de:443 ssl; # managed by Harbich
    ssl_certificate /etc/ssl/certs/mome01.intern.example.com.crt; # managed by Harbich
    ssl_certificate_key /etc/ssl/private/mome01.intern.exemple.com.key; # managed by Harbich
    ssl_dhparam /etc/ssl/certs/dhparams.pem; # managed by Harbich
    location / {
        proxy_pass http://192.168.0.1;
        proxy_set_header  Host $host;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-Proto https;
        proxy_set_header  X-Forwarded-For $remote_addr;
        proxy_set_header  X-Forwarded-Host $remote_addr;
    }
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log debug;
}
Rufe ich aber im Webbrowser die folgende URL auf "http:192.168.0.1" dann werde ich auf die Login Seite des DrayTek Modem / Router weitergeleitet. Allerdings sieht die URL dann so aus:

Code: Alles auswählen

http://192.168.0.1/web/#/login
Kann es sein das ich meine "mome01.conf" im Nginx noch anpassen muss?

Gruß von Stefan Harbich

reox
Beiträge: 2464
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Nginx Umleitung von http auf https

Beitrag von reox » 13.11.2023 09:12:50

Es könnte sein, dass der DrayTek da reinpfuscht. Evt hat der konfiguriert, dass ein Request auf / eine Weiterleitung auslöst. Dagegen kannst du dann eigentlich nichts machen, außer evt noch direkt das HTML per proxy umschreiben...
Häng dich beim Aufruf mal mit einem tcpdump/wireshark/browserconsole dazwischen und schau nach wie die Weiterleitung eigentlich ausgelöst wird. Ich würde wie gesagt vermuten, dass sie nicht vom nginx kommt sondern evt einfach eine html meta-refresh weiterleitung ist.
uU kannst du dem nginx auch eine regel einbauen, welche anfragen auf / dann am nginx auf die richtige seite umleitet - vorrausgesetzt der Router leitet nicht einfach alles um oder so...

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Nginx Umleitung von http auf https

Beitrag von bluestar » 13.11.2023 10:51:06

sharbich hat geschrieben: ↑ zum Beitrag ↑
13.11.2023 09:06:42
Hallo Ihr Lieben,

leider bekomme ich das nicht so richtig hin. Ich versuche das Problem etwas anders zu beschreiben.
Ich habe ein Modem / Router von der Firma DrayTek Vigor 167. Dieses Gerät hat ein eigenes Betriebssystem. Darauf läuft ein Apache Webserver. Dies sehe ich immer wenn ich mich über den Revers Proxy von Nginx über die folgende URL "http://mome01.intern.example.com" mit dem Gerät verbinde. Es erscheint dann folgende Meldung "Apache2 Debian Default Page".
Kann es sein dass auf deinem Debian auch noch ein Apache2 läuft? Den könntest du testweise einmal stoppen.

sharbich
Beiträge: 284
Registriert: 27.09.2013 21:12:40

Re: Nginx Umleitung von http auf https

Beitrag von sharbich » 13.11.2023 13:01:28

Hallo Ihr Lieben,
ich Dusel. Ich habe die falsche IP Adresse für den Reverse Proxy verwendet. Anstatt die 192.168.20.100 habe ich die 192.168.200.100 verwendet. Dann kann das ganze ja nicht funktionieren. Trotzdem komisch warum da ein Apache2 Webserver lauscht?

Ich hatte mich schon gewundert warum ich über tcpdump nichts gesehen habe. Einfach überarbeitet.
Gruß von Stefan Harbich

Antworten