SNI ist ja eine Erweiterung, die ab TLS 1.0 unterstützt wird. Der Webserver braucht SNI, um beim TLS-Handshake das richtige Zertifikat zu finden.
Der Webserver kann sich jetzt auf zwei verschiedene Arten verhalten:
Er kann drauf bestehen, das SNI verwendet wird. Apache2 macht das, wenn SSLStrictSNIVHostCheck angeschaltet ist. Ergebnis: ein Client, der kein SNI sendet, kann nicht verbinden
Oder er serviert einfach das erste Zertifikat, dass nach seiner Config passt. So verhält sich Apache, wenn die oben genannte Option aus ist.
Ein Client, der zwar TLS 1.0 unterstützt aber kein SNI, bekommt also u.U. dann einfach ein unpassendes Zertifikat und damit die entsprechende Zertifikatswarnung.
Weil nach dem TLS-Handshake kommt ja das normale HTTP Protokoll, und da wird dann nochmal der Host: Header gesendet. Der Webserver kann also schon die richtige Seite servieren.
Beispiel zur Illustration:
Bei deiner Webseite risknet.de passt das alles. Per SNI alles perfekt. Wenn man allerdings über
5.9.30.49 reingeht, bekommt man ein Zertifikat für dav.beme-it.de und eine Standard-Webseite.
Die Risknet.de ist also NICHT der erste Virtualhost auf 443.
Kommt bei Risknet.de im Model S Browser eine Zertifikatswarnung und die richtige Seite? Kommt bei 5.9.30.49 eine Zertifikatswarnung und die Beispielwebseite?
Wenn ja, kann der Model S Browser definitiv kein SNI.
Ja. Wie ich geschrieben habe, tff-forum.de zum ersten Virtualhost für 443 machen und SSLStrictSNIVHostCheck ausschalten. Dann sollte er bei Browsern die TLS 1.0 können aber kein SNI korrekt ausliefern.
Das Tesla mal diesen antiquierten Browser updaten könnte, ist eine andere Geschichte …
Grüße, Andreas