Перенаправить пользователей, соединяющихся с SSLv3 в nginx

Я искал отказ от поддержки SSLv3 из-за POODLE, но обнаружил, что все еще есть люди, пришедшие из старых браузеров для IE, подобных Windows XP.

Как мне обнаружить этих пользователей, использующих только SSLv3, из nginx и перенаправить их на какую-нибудь вспомогательную страницу с дальнейшими инструкциями?

Мне определенно не нужны обходные пути, чтобы эти пользователи использовали небезопасные браузеры.

И я буду особенно рад, если смогу сделать то же самое для всех браузеров без SNI: SSLv3 не поставляется с SNI, поэтому, если бы я мог перенаправить браузеры без SNI, это также решило бы проблему SSLv3.

2 ответа

Решение

Оставляя в стороне вопрос о том, чтобы оставить SSLv3 включенным, вы можете просто дать команду nginx перенаправить в зависимости от того, используется ли протокол SSLv3:

if ($ssl_protocol = SSLv3) {
  rewrite ^ /poodle-doodle.html;
}

Вы можете проверить это из оболочки:

$ wget --secure-protocol=SSLv3 -O - $SERVER_URL
# or
$ curl -v -3 $SERVER_URL

Я не специалист по настройке nginx, но должна быть возможность настроить конкретное имя хоста и дополнительно установить по умолчанию для всех других запросов. Настройка хоста на основе имени будет автоматически использоваться с https, если клиент использует SNI, а имя хоста, указанное в SNI, соответствует конфигурации. Во всех других случаях, это другое имя хоста, клиенты TLS без SNI и клиенты с SSL 3.0 (который не поддерживает SNI), используются настройки по умолчанию, так что вы можете предоставлять различную информацию там. Затем эта настройка по умолчанию может сделать все предупреждения, которые вы хотите выдать более старым клиентам.

Таким образом, вы также можете использовать разные сертификаты, например, дать всем клиентам SNI сертификат, подписанный SHA-256, а другим - только один, подписанный SHA-1, потому что эти старые клиенты могут еще не поддерживать SHA-256.

Редактировать: согласно комментариям от Ксавье Лукаса, он будет использовать только настройки сертификата из конфигурации по умолчанию (не SNI), но другие параметры зависят от заголовка хоста. Это означает отсутствие другого корневого документа для клиентов, не являющихся SNI.

Другие вопросы по тегам