PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HTTP und HTTPS auf einem Port



Suffer
01.11.07, 17:43
Hallo,

ist es möglich einen apache auf einem (!) Port laufen zu lassen und alle HTTP-Anfragen auf diesen Port in HTTPS-Anfragen umzuwandeln?

Ein erster intuitiver Ansatz schlägt fehl:


<VirtualHost *:35000>
RewriteEngine On
#RewriteCond %{SERVER_PROTOCOL} HTTP
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule ^(.*) https://%{HTTP_HOST}$1 [R,L]

SSLEngine on
SSLCertificateFile /etc/apache2/apache.crt
SSLCertificateKeyFile /etc/apache2/apache.key
</VirtualHost>


Wenn ich mit HTTP zugreife, kommt die Fehlermeldung "You are speaking plain HTTP to an SSL-enabled server port" (klar, weil SSLEngine eben "on" ist). Und greife ich mit HTTPS darauf zu, kommt das Rewrite nicht zum Tragen.

Die naheliegenste Lösung wäre natürlich das auf 2 Ports laufen zu lassen (35080 und 35443 z.B.), aber das möchte ich wenn möglich vermeiden.

derRichard
01.11.07, 18:21
hallo!

das wird nicht gehen.
http und https kannst ned so vereinen.
wenn https erzwingen willst, dann mach einen dummy http-vhost und redirecte sofort auf https...

hth,
//richard