Erkennung der SNI-Unterstützung des Browsers

8

Ich würde gerne wissen, ob es einen Weg gibt, herauszufinden, ob ein Browser, der eine HTTP-Anfrage macht, SNI unterstützt, außer dass er den Benutzer-Agent überprüft und rät.

Ich würde serverseitige oder clientseitige Optionen in Betracht ziehen.

Was ich tun möchte, ist SSL-Zertifikate für mehrere Domains einzurichten, die auf dieselbe PHP-Anwendung verweisen. Ich würde dann versuchen, herauszufinden, ob der Client, der die Anfrage stellt, SNI unterstützt, und falls ja, leite ihn auf die SSL-fähige Version um.

    
Gerry 09.09.2011, 15:25
quelle

1 Antwort

5

Zunächst kennen wir die Browser, die SNI derzeit unterstützen:

Opera 8.0; MSIE 7.0 (aber nur unter Windows Vista oder höher); Firefox 2.0 und andere Browser mit Mozilla Platform rv: 1.8.1; Safari 3.2.1 (Windows-Version unterstützt SNI unter Vista oder höher); Chrome (Windows-Version unterstützt auch SNI unter Vista oder höher).

so ein billiger Weg ist, den Browser zu bestimmen, und wenn es einer der oben genannten ist, hat es SNI.

Dies ist zwar keine bewährte Methode (Präferenz für Feature-Erkennung), aber es scheint, dass dies nicht vermieden werden kann, da die SNI-Erkennung einen SSL-Handshake erfordert. Daher ist es zu spät, etwas nach dem Scheitern Ihres SSL-Zertifikats zu tun.

    
Todd Moses 09.09.2011, 16:46
quelle

Tags und Links