Kann ein Webserver basierend auf dem Hostheader der eingehenden Verbindung ein zu verwendendes SSL-Zertifikat auswählen oder sind diese Informationen erst verfügbar, nachdem die SSL-Verbindung hergestellt wurde?
Das heißt, kann mein Webserver auf Port 443 aufgeführt sein und das foo.com-Zertifikat verwenden, wenn https://foo.com angefordert wird, und das bar.com-Zertifikat, wenn https://bar.com angefordert wird oder ich dies versuche ? etwas unmögliches, weil der Server eine SSL-Verbindung herstellen muss, bevor er weiß, was der Client will?
quelle
Um Warners Antwort zu erweitern: CAcerts Seite Vhost Task Force vergleicht verschiedene Methoden zur Verwendung mehrerer Domänen auf einem einzelnen Server. Ich persönlich benutze Server Name Indication .
quelle
Kurze Antwort: nein
HTTP ist in SSL gekapselt , sodass auf alle Informationen zu der Anforderung erst zugegriffen werden kann, nachdem die Verbindung hergestellt wurde. Daher bis ein Zertifikat an den Kunden übergeben wurde. Keine Möglichkeit, Header oder andere verschlüsselte Informationen zu verwenden, da diese immer noch nicht verfügbar sind.
BEARBEITEN: Dies ist der Fall, wenn Sie heutzutage browserübergreifend und vollständig portabel sein möchten . Wie von anderen gesagt, gibt es einige neu aufkommende Methoden, die dies in naher Zukunft ermöglichen.
quelle
Richtig. Die SSL-Verbindung wird hergestellt, bevor ein Teil der HTTP-Anforderung (einschließlich Host-Header) gesendet wird.
quelle