Apache ssl-enabled vHost gibt zufällige 400 Ungültige Anforderung
Frage
Ich habe Setup zwei lokale vhosts (http und selbstsignierte HTTPS) für billing.example.com und sie in Firefox mit Firebug versuchen. Http vHost nur den Zweck, alle Anfragen auf https umgeleitet wird.
Fast jedes Mal, wenn ich Anfrage Seite von https, eine oder zwei Dateien mit zugehörigen Ressourcen (Bildern, js, css, etc ...) und manchmal PHP-Seite selbst zurückkehren 400 Bad Request in Firebug-Fenstern, manchmal eine oder zwei Dateien angezeigt wie für eine lange Zeit geladen. Wenn ich auf Link Problem in Firebug, Datei lädt, wie es sollte. Auch schlechte Anfrage oder nicht geladenen Dateien ändert sich fast jedes Mal, wenn ich bin Laden Seite.
Irgendwelche Ideen?
Server: Ubuntu 10.04, Apache / 2.2.14 mit mod_ssl
Vhosts:
Listen 80
<VirtualHost *:80>
ServerName billing.example.com
UseCanonicalName On
DocumentRoot /code/site/billing
...
RewriteEngine On
RewriteRule ^/(.*)$ https://billing.example.com/$1
</VirtualHost>
Listen 443
<VirtualHost *:443>
ServerName billing.example.com
UseCanonicalName On
DocumentRoot /code/site/billing
...
SSLEngine On
SSLCertificateFile /code/site/ssl/example.crt
SSLCertificateKeyFile /code/site/ssl/example.key
</VirtualHost>
Der Rest sind die Standardeinstellungen von ubuntu apache2.
Lösung
Ich habe dieses Problem mit Apache 2.2.9 und einem Upgrade auf Apache 2.2.22 löste das Problem für mich.
würde ich zufällig 400 Antwortcodes auf einige der Seitenanfragen erhalten. Manchmal Bilder, manchmal AJAX-Anfragen. Gelegentlich würde es die Seite selbst sein, die ein 400 zusammen mit dieser Nachricht zurückkehren würden.
Bad Request Ihr Browser gesendet einen Antrag, dass dieser Server nicht verstehen kann. Request-Header-Feld fehlen ':' Separator. Live
fand ich den folgenden Teppich Bericht für das im Zusammenhang schien. Der Fehler wurde in Apache 2.2.15 behoben: https://bugzilla.redhat.com/show_bug cgi? id = 652335
Ich denke, dieser Fehler ist die Ursache für viele zufällige Fehler bei https: Ihr Browser gesendet einen Antrag, dass dieser Server konnte nicht verstehen, Request-Header-Feld fehlen ':'. Separator
Also dachte ich würde versuchen, die Aktualisierung auf die neueste Apache mit der neuesten mod_ssl - und das schien zu funktionieren
.Andere Tipps
Für den ssl Abschnitt, können Sie UseCanonicalName Off
für virtuelle Hosts aktivieren möchten, werden Sie wahrscheinlich eine andere Domäne als der Haupt-Server verwenden und das könnte dazu führen Sie für Dateien außerhalb des virtuellen Hosts zu suchen.
Die Vollständigkeit halber auf Port 80, würde ich [R, L] fügen Sie die Umleitung.
RewriteEngine On
RewriteRule ^/(.*) http://billing.example.com/$1 [L,R]