Über spezielle Standard-Web-Anwendung ... Sie können nicht nur das tun.
Sie können das nicht tun, weil die begrenzten Clients nicht nur eine andere Seite öffnen, sondern sie vollständig ausfallen.
Betrachten Sie einen "Standard" -Vhost, den ein Nicht-SNI-Client gut öffnen wird.
Sie haben auch einen zusätzlichen vhost, der von einem SNI-unterstützenden Client geöffnet werden soll.
Offensichtlich müssen diese zwei verschiedene Hostnamen haben (sagen wir default.example.com
und www.example.com
), sonst würde Apache oder nginx nicht wissen, welche Seite zu welchem verbindenden Client angezeigt werden soll. Jetzt
, wenn ein Nicht-SNI-Client versucht, https://www.example.com
zu öffnen, er wird ein Zertifikat von default.example.com
präsentiert, die ihm einen Zertifikatsfehler geben würden. Dies ist ein wichtiger Vorbehalt.
Eine Lösung für diesen Fehler besteht darin, ein SAN (Multi-Domain) -Zertifikat zu erstellen, das sowohl www.example.com
als auch default.example.com
enthält. Wenn dann ein Nicht-SNI-Client versucht, https://www.example.com
zu öffnen, wird ihm ein gültiges Zertifikat angezeigt, aber selbst dann würde sein Host:
-Header immer noch auf www.example.com
zeigen, und seine Anforderung wird nicht an default.example.com
, sondern an www.example.com
weitergeleitet.
Wie Sie sehen, blockieren Sie entweder Nicht-SNI-Clients vollständig oder leiten sie an einen erwarteten vhost weiter. Es gibt keine sinnvolle Option für eine Standard-Webanwendung.
Dies gilt für openssl Versionen 1.1.0 * und früher. In 1.1.1 * Builds sendet s_client standardmäßig die Erweiterung "server_name" (mit dem Host, der im Parameter "-connect" angegeben wurde). Wenn Sie "server_name" nicht in der neueren Version senden wollen, müssen Sie diese mit "-noservername" abschalten. – Andrew