it-swarm.com.de

Konflikt zwischen von SNI und HTTP bereitgestellten Domänen

Ich habe kürzlich eine WordPress Website mit einem kleinen Geschäft von einem Hosting-Anbieter auf einen eigenen Server mit Ubuntu Server 12.04.2 LTS und Apache 2.2.22 verschoben. Ich benötige SSL für das Geschäft. Ich habe ein paar einfache vhosts auf einer neuen IP für den Server eingerichtet, eine Bindung an Port 80 der spezifischen IP und die andere Bindung an Port 443. Beide haben ServerName www.example.com und ServerAlias example.com in der vhost-Konfiguration. Ich habe SSLStrictSNIVHostCheck off.

Die Seite läuft sehr langsam, funktioniert aber. In meinen Fehlerprotokollen wird Folgendes angezeigt.

[Error] Hostname example.com provided via SNI and hostname www.example.com provided via HTTP are different

Ich gehe davon aus, dass die Langsamkeit mit der obigen Nachricht zusammenhängt. Irgendwelche Ideen, warum das so ist und was ich dagegen tun kann?

22
flickerfly

Sehen Sie sich Ihr Zugriffsprotokoll an (nicht das Fehlerprotokoll). Mit der Uhrzeit und dem Datum des Fehlers sollten Sie in der Lage sein, die fehlerhafte Anforderung zu identifizieren und den Benutzeragenten herauszufinden. In meinem Fall war es ein Bot:

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)"

Mein Server antwortet mit HTTP 400: Bad Request.

Sofern ich mich nicht irre, sendet der Client bei TLS-Verhandlungen den Hostnamen zweimal: einmal VOR dem Herstellen der SSL-Verbindung in der SNI (Server Name Indication) und einmal NACH der tatsächlichen HTTP-Anforderung. Wenn die Servernamen nicht übereinstimmen, deutet dies auf einen defekten Client hin und sollte nichts mit der Konfiguration Ihres Servers zu tun haben.

Vielleicht reparieren sie ihren Bot eines Tages, in der Zwischenzeit können Sie ihn wahrscheinlich ignorieren. Ich bezweifle, dass dies zu Langsamkeit auf dem Host führen kann, es sei denn, die Anfragen kommen mit einer sehr hohen Rate.

24
Arno Schäfer

Möglicherweise wird dieser Fehler von einigen Clients absichtlich hervorgerufen, um Schwachstellen Ihres Servers zu testen. Ich habe festgestellt, dass eine Anfrage von researchscan367.eecs.umich.edu hat den Fehler auf einem von mir gepflegten Server ausgelöst. In diesem Fall ist es gut, dass der Fehler auftritt.

Ich war neugierig, welche Art von Angriffen möglich sind, und habe diese Frage bei Security Stack Exchange gestellt: Welche Art von Angriff wird durch den Apache2-Fehlercode AH02032 verhindert?

12
user370761

In meinem Fall war die Erstellung eines neuen virtuellen Hosts mit einem Unterstrich das Problem. Ich habe ein Wildcard-SSL-Zertifikat.

Hat nicht funktioniert:

<VirtualHost *:443>
        SSLEngine on
        ServerName sub_domain.example.com
        Redirect / https://www.example.com/restofmyredirectlink
</VirtualHost>

Obwohl Apache erfolgreich neu gestartet wurde, wurden HTTP 400-Fehler angezeigt. Im Fehlerprotokoll:

[Wed Sep 05 11:28:00.349960 2018] [ssl:error] [pid 19906:tid 140392626808576] AH02031: Hostname sub_domain.example.com provided via SNI, but no hostname provided in HTTP request

Das Entfernen des Unterstrichs hat jedoch funktioniert:

<VirtualHost *:443>
        SSLEngine on
        ServerName subdomain.example.com
        Redirect / https://www.example.com/restofmyredirectlink
</VirtualHost>
2
MS Berends

Klingt auf den ersten Blick wie ein Client-Problem ... Welcher Browser verursacht dieses Problem?

Die Nachricht würde darauf hinweisen, dass der Hostname, den der Client während der SSL-Verbindungskonfiguration sendet, nicht mit dem übereinstimmt, den der Client in der HTTPS-Anforderung sendet, sobald die SSL-Schicht aktiv ist.

1
alxgomz

Überprüfen Sie in Ihrer Datei/etc/hosts, ob Sie den Domänennamen einer lokalen (internen) IP-Adresse zuweisen. Vergessen Sie nicht, den Namensdienst-Cache-Daemon nach dem Ändern des Neustarts von/etc/hosts service nscd neu zu starten

0
Jim Da Otter