О специальном веб-приложении по умолчанию ... Вы не можете этого сделать.
Вы не можете этого сделать, потому что ограниченные клиенты не просто открывают другую страницу, но полностью терпят неудачу.
Рассмотрите, что у вас есть «по умолчанию» vhost, который откроется не-SNI-клиенту.
У вас также есть дополнительный призрак, который должен быть открыт клиентом, поддерживающим SNI.
Очевидно, что эти два должны иметь разные имена хостов (скажем, default.example.com
и www.example.com
), иначе Apache или nginx не знали бы, какой сайт показывать, на какой подключаемый клиент.
Теперь, если не-SNI клиент пытается открыть https://www.example.com
, он будет представлен сертификат от default.example.com
, который даст ему ошибку сертификата. Это серьезное предостережение.
Исправление этой ошибки состоит в том, чтобы сделать сертификат SAN (multi-domain), который будет включать как www.example.com
, так и default.example.com
. Затем, если клиент, не являющийся SNI, пытается открыть https://www.example.com
, ему будет предъявлен действительный сертификат, но даже тогда его заголовок Host:
будет по-прежнему указывать на www.example.com
, и его запрос будет перенаправлен не на default.example.com
, а на www.example.com
.
Как вы можете видеть, вы либо полностью блокируете клиентов, не являющихся SNI, либо пересылаете их ожидаемому призму. Не существует разумного варианта для веб-приложения по умолчанию.
Это верно для OpenSSL релизов 1.1.0 * и раньше. В 1.1.1 * builds s_client по умолчанию добавляет расширение «имя_сервера» (с любым хостом, указанным в параметре «-connect»). Если вы не хотите отправлять «имя_сервера» в новой версии, вы должны отключить его с помощью «-noservername». – Andrew