[Apache] HTTPS auf benutzerdefiniertem Port

erik s.

Erfahrenes Mitglied
Hallo,

ich möchte auf meinem Apache ein Backend einrichten, welches nur per HTTPS erreichbar ist, aber über einen benutzerdefinierten Port, z.B. 4443.
Das Einrichten ist auch nicht das Problem, sondern die Tatsache, dass ich sozusagen einen "Komfort" einrichten möchte, der es erlaubt, einen Benutzer, der die Seite zwar mit dem richtigen Port aber nicht mit dem vorangestellten https:// aufruft, auf https://domain.de:4443 weiterzuleiten.
Also: Der Apache lauscht auf Port 4443 mit aktivierter SSL-Engine, der Benutzer kommt aber mit normalen HTTP auf diesem Port an. Bisher meckert der Indianer nur, dass man es doch bitte mit vorangestelltem https versuchen solle. Genau das soll der aber automatisch machen.

Habe leider nichts dazu gefunden, weder bei G**gle noch hier im Board ... oder ich habe eventuell falsch gesucht.

Hoffe, es hat jemand einen Vorschlag.

Vielen Dank.
Gruß
 
Ich würde sagen das dies mit .htaccess gelöst werden kann. Eine Weiterleitung per Regex oder so.
 
Das Problem ist, dass die Auswertung der .htaccess erst erfolgen kann, wenn die Verbindung besteht. Und dies ist eben nicht der Fall, wenn zum richtigen Port das falsche Protokoll genutzt wird.
 
Auf meinem Server habe ich das per Konfiguration über VirtualHosts gelöst in der httpd.conf gelöst.
Im Prinzip die gleiche URL mit einem anderen Port spezifizieren und SSL aktivieren, Zertifikate angeben, Apache neustarten.
Code:
<VirtualHost *:80>
       ...
</VirtualHost>
 
<VirtualHost *:4443>
...
        SSLEngine On
        SSLCertificateFile    /etc/apache2/ssl/mycert.pem
        SSLCertificateKeyFile /etc/apache2/ssl/mycert.key
...

Die genaue Konfiguration kann ich momentan nicht nachschauen, aber ich habe dort auch nur den Adminbereich per HTTPS zugänglich gemacht. Falls der Schnipsel oben nicht reicht, schaue ich später nochmals genau nach.
http://httpd.apache.org/docs/2.0/vhosts/
 
Zuletzt bearbeitet:
Code:
<VirtualHost *:80>
       ...
</VirtualHost>
 
<VirtualHost *:4443>
...
        SSLEngine On
        SSLCertificateFile    /etc/apache2/ssl/mycert.pem
        SSLCertificateKeyFile /etc/apache2/ssl/mycert.key
...

Das Einrichten des VHosts ist wie gesagt nicht das Problem. Ruft aber ein Benutzer die Seite mit dem Port 4443 auf, aber OHNE https voranzustellen, dann gibt der Apache eine Fehlermeldung "400 Bad Request" aus, weil der Server ja https erwartet, der Benutzer aber nur mit blankem http anfragt. Und anstatt dieser Fehlermeldung könnte der Apache doch gleich weiterleiten auf https://...:4443.
 
Zurück