wieso funktioniert http://xxx.xx:443/ nicht? - nur https geht

stefkey

Member
Hallo,

ist es nicht üblich das man bei der URL statt https auch http....:443 angeben kann?

Mein Browser schreibt bei der http...:443 Methode leider:
Code:
Bad Request

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
Hint: https://xxxxxxxxxxx/

Kann man den Server so konfigurieren das er den Browser veranlasst zu https zu wechseln?
Ein
Code:
<VirtualHost *:80>
        ServerName www.meinedomain.de
        RewriteEngine on
        RewriteRule ^.*$  https://%{HTTP_HOST}/$1   [L]
</VirtualHost>

bringt leider nichts.
 
... und der Fehler ist auch korrekt so. Unverschlüsselt auf einem zwangsweise verschlüsselten Port geht nicht.
 
Unverschlüsseltes HTTP = Deutsch
Verschlüsseltes HTTPS = chinesisch

Dein Browser spricht auf http://....:443 auf deutsch mit einem Server, der auf diesem Port nur chinesisch versteht ;)

Das ganze firmiert unter dem Arbeitstitel "implizite SSL-Verbindung" - du baust ja auf einem Port der Serverseitig ausschließlich mit Verschlüsselung arbeitet eine Verbindung auf. Geht auch nicht anders, denn bei HTTP kannst du nicht wie bei FTP oder SMTP einfach mitten drin "STARTTLS" in den Raum brüllen und dann verschlüsselt weitermachen. Der Server muss anhand des genutzten Ports entscheiden ob er nun SSL spricht oder nicht ;)
 
Kann man den Server so konfigurieren das er den Browser veranlasst zu https zu wechseln?
Ein
Code:
<VirtualHost *:80>
        ServerName www.meinedomain.de
        RewriteEngine on
        RewriteRule ^.*$  https://%{HTTP_HOST}/$1   [L]
</VirtualHost>

bringt leider nichts.
Statt mod_rewrite zu misbrauchen, lieber richtig machen:
Code:
RedirectPermanent / https://sub.domain.tld/
 
Ich dachte der Browser müsste doch zumindest aus ...:443 dann https:// machen... egal. DANKE!

und:
Code:
RedirectPermanent / https://sub.domain.tld/
ist super! Danke auch hierfür - wird gemacht!
 
Ich dachte der Browser müsste doch zumindest aus ...:443 dann https:// machen... egal. DANKE!
Nö.

Das Protokoll gibst Du mit http:// oder https:// an - da weiß der Browser dann, was er haben will / erwartet. Der Port hintendran ist nur "Beiwerk" - da kannst Du eigentlich alles reinschreiben - es hat auf das verwendete Protokoll keinerlei Auswirkung.
Serverseitig hindert Dich ja z.B. keiner daran, den http-Apache auf Port 22, 443, 1578, 1521 oder was auch immer hören zu lassen - es ist nur ein Port.
Entscheidend ob Server + Client sich verstehen ist das angegebene Protokoll, und das ist von den Ports unabhängig.
Das man es nicht immer angeben muss liegt eigentlich nur daran, daß Client-seitig einige Defaults bereits vorkonfiguriert sind.
 
Back
Top