Назад | Перейти на главную страницу

Ошибка TLS 1.2 в Internet Explorer 11 / Windows 7?

У меня есть несколько небольших веб-сайтов, обслуживаемых Apache / Linux. В настоящее время я пытаюсь урезать конфигурацию SSL, насколько это возможно, чтобы сделать ее максимально безопасной.

Я настроил Apache так, чтобы он разрешал только TLS 1.2 и только шифры с обменом ключами DHE или ECDHE. Firefox и Chrome в новейших версиях (на момент написания этой статьи) отлично подключаются к веб-сайтам на этом сервере.

Но Internet Explorer 11 (работающий под Windows 7 x64) в стандартной конфигурации не может подключиться ни к одному из этих веб-сайтов. Захваты Wireshark показывают, что IE в своем первом приветствии клиента пробует TLS 1.2, показывает свои шифры серверу и так далее, и что ответ сервера правильный, включая выбранный шифр.

Затем, по-видимому, без всякой причины IE перезапускается и отправляет новому клиенту привет, на этот раз с использованием TLS 1.0, что, конечно же, дает сбой и заставляет IE думать, что он не может подключиться к веб-сайту.

Может ли быть ошибка в IE, из-за которой он пытается использовать неправильный протокол после того, как правильный протокол уже был успешно установлен? Ошибка, которая, возможно, возникает, только если сервер предоставляет ТОЛЬКО TLS 1.2 (что, вероятно, довольно редко)?

У нас было несколько компьютеров с Windows 7 с таким же поведением. В итоге нам потребовалось установить MS14-066 для включения некоторых дополнительных шифров. Понятия не имею, почему патч конца 2014 года еще не был установлен, но готово.

Ваш пробег может отличаться.

Проверьте, используете ли вы сертификат MD5 или нет, поскольку Internet Explorer 9/10/11 и Edge прерывают соединение, если сервер предоставляет цепочку сертификатов, которая использует алгоритм MD5, как указано в конце этот блог:

Если сервер согласовывает соединение TLS1.2 с Windows 7 или 8 schannel.dll-используя клиентское приложение, и оно предоставляет цепочку сертификатов, которая использует (слабый) алгоритм хеширования MD5, клиент прервет соединение (TCP / IP FIN) после получения сертификата.

Поиск по ключевому слову md5 tls1.2 показывает это сообщение в блоге Ошибка установления связи TLS 1.2 который описывает ту же проблему более подробно. В основном, согласно RFC5246 Протокол безопасности транспортного уровня (TLS) версии 1.2, MD5 больше не считается защищенной хеш-функцией, поэтому schannel.dll следует RFC и отклоняет цепочку сертификатов MD5.

Хотя я понимаю обоснование, было бы легче устранить неполадки, если бы сообщение об ошибке было более конкретным. Поэтому у меня есть подал вопрос в трекер ошибок.

Замена в SHA-2561 сертификат должен решить проблему.

1 SHA-1 также будет работать, но больше не рекомендуется

У меня возникла аналогичная проблема при использовании IE 11 и Apache 2.4. с аутентификацией клиента (порт 843), и я решил свою проблему, изменив конфигурацию IE и, наконец, изменив конфигурацию apache ssl в разделе «<VirtualHost ...>».

1-я часть для решения проблемы: конфигурация клиента

Меню »Инструменты -> Свойства обозревателя -> Дополнительно", в "Безопасность"раздел, снимите флажок SSL2.0 и SSL 3.0 а затем убедитесь, что TLS 1.0, 1.1 и 1.2 отмечены, затем нажмите кнопку «Применить».

По тому же меню "Инструменты -> Свойства обозревателя -> Содержание", нажмите"Очистить состояние SSL"buttom.

Закройте Internet Explorer, снова откройте его и попробуйте получить доступ к веб-сайту.

Может в вашем случае вам нужно только проверить TLS 1.2 . Попробуйте разные комбинации o TLS включен, но не включайте SSL, чтобы избежать проблем.

Наконец я попробовал SSL3.0 + TLS1.0 + TLS1.1 + TLS1.2 и это сработало нормально.

В любом случае, если вы используете SSL2.0 + TLS 1.2, доступ к вашему сайту выйдет из строя, потому что они несовместимы.

2-я часть для решения проблемы: конфигурация сервера

Взгляните на раздел виртуального хоста вашего веб-сайта на apache "config /". Убедитесь, что в любом разделе вроде "<VirtualHost *: [port]>" у вас есть имя вашего домена в параметре "ServerName" и [PORT] (особенно это последнее действие , окончательно решил мою проблему)

Например.

  • ServerName www.your-domain.com:80

  • ServerName www.your-domain.com:443

  • ServerName www.your-domain.com:843

Не забудьте заглянуть в файл http-ssl.conf в каталог «conf / extra /» (этот путь и имя файла зависят от установки вашего сервера Apache), где, возможно, вы можете найти запись для параметра «ServerName» по умолчанию virtual раздел хоста.

Надеюсь, это вам поможет.