Как перехватить «не удается установить безопасное соединение»

#asp.net #ssl #http-headers #tls1.2

#asp.net #ssl #http-заголовки #tls1.2

Вопрос:

У меня есть веб-сайт, на котором некоторые люди, использующие старые компьютеры или браузеры, не могут установить соединение с нашими защищенными частями сайта.

Что я хочу сделать, так это зафиксировать ошибку подключения и перенаправить их на экран, объясняющий, почему это происходит, и отсылающий их к некоторым ресурсам, которые могут помочь.

Практически в каждом случае, с которым мы сталкивались, комбинация браузера / операционной системы не совместима с TLS 1.1 и / или 1.2, поэтому сервер отказывает им.

Существует ли конкретный код ответа HTTP, для которого я должен перехватывать? Я думал, что это может быть 502, но, похоже, это не улавливается.

Или это даже не доходит до этой точки?

Когда мы видим это в Safari, предварительная версия 7, сообщение выглядит примерно так:

Safari не удается установить безопасное соединение

Если коды ошибок HTTP не подходят, есть ли хороший способ перехватить это? Я использую asp.net для управления нашим веб-сайтом.

РЕДАКТИРОВАТЬ: кто-нибудь знает последовательность, в которой сервер и браузер проходят в этой ситуации? Я думаю, что выяснить, где вмешаться / перехватить, — это полдела для меня. Это редактирование было более сложным, поскольку у меня пока нет ответов.

Ответ №1:

TLS управляется вашим веб-сервером, а не ASP.NET , так что вы никак не сможете перехватить сбой TLS-соединения внутри вашего ASP.NET код.

Что вы могли бы сделать, так это установить прокси-сервер перед вашим веб-сайтом, который будет принимать входящие соединения с TLS <1.2 и немедленно отвечать клиенту страницей с ошибкой. Он передаст все допустимые соединения с правильной версией TLS на веб-сервер.

Комментарии:

1. @PoloHoleSet я не знаю, не эксперт, но маловероятно.