ихаил
Сергеевич
8(4832)305-008


Блог вопиющего в пустыне

Отключение протокола TLS 1.0 на Windows Server 2008 R2 привело к сбою подключения к SQL Server 2008 R2

Просмотров :  76  |  Комментариев :  0

Как включить TLS 1.2 на Windows Server-е, - в сети полно рекомендаций. Единственное, когда в ключе реестра HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Control \SecurityProviders \SCHANNEL \Protocols\  добавил раздел TLS 1.2 , то в папках Client и Server создал параметр DWORD "Enabled" со значением ffffffff (а не 1).

Добавляем раздел TLS 1.2 (подраздел Client)

Добавляем раздел TLS 1.2 (подраздел Server)

В этом же ключе в разделах SSL 2.0 и SSL 3.0 для Client и Server установил "Enabled"  = 0

Но с наступлением 2021 года у них опять стала присутствовать обеспокоенность за безопасность передачи данных. На портале SSL Labs (https://www.ssllabs.com/ssltest/) запустил проверку сайта. SSL Report выдал, что у меня на сервере образовалось два слабых протокола TLS 1.0 и TLS 1.1.

Слабые протоколы TLS 1.0 и TLS 1.1

Слабые протоколы TLS 1.0 и TLS 1.1

В ключах реестра HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Control \SecurityProviders \SCHANNEL \Protocols \TLS 1.0 и  ...\TLS 1.1 для Client и Server установил параметр  "Enabled" = 0

Устанавливаем для TLS 1.0 и TLS 1.1 "Enabled" = 0

Перезагрузил сервер. После чего SSL Report выдал "грин-карту".

 SSL Report выдал "грин-карту"

SSL Report выдал "грин-карту"

Всё. Насчет защиты передачи данных дальше можно было не заморачиваться. Но, месяца через три, для отработки некоторых вопросов запустил установленный на сайте сервис, разработанный на платформе ASP.NET (с базой данных  на MS SQL Server 2008R2).

Пример сервиса, разработанного на платформе ASP.NET

И получил "500 - внутренняя ошибка сервера. Проблема с запрашиваемым ресурсом; ресурс не может быть отображен". Запустил на сервере SQL Server Management Studio и получил в ответ: "Сервер не найден или недоступен. ...Не удалось открыть подключение к SQL Server"

Не удалось открыть подключение к SQL Server

Такое сообщение Management Studio выдаёт, как правило, если остановлена служба MSSQLSERVER. Попробовал запустить службу и получил: "Не удалось запустить службу SQL Server (MSSQLSERVER) на Локальный компьютер":

Не удалось запустить службу SQL Server (MSSQLSERVER)

В сети нашел объяснение данной проблемы. Дело в том, что MS SQL Server (в том числе и 2008R2) работает только если включен протокол TLS 1.0. Т.е., если этот протокол отключить, то после перезагрузки сервера служба MSSQLSERVER не стартует. Вспомнил, что не так давно отключал протоколы TLS 1.0 и TLS 1.1. Включил TLS 1.0, - служба запустилась. Отключаю TLS 1.0, службу - на перезапуск. Не стартует!

На сайте Microsoft нашел обновление SQLServer2008R2-KB4057113-x64.exe, которое они позиционировали для поддержки TLS 1.2 в SQL Server 2008 R2. Но при установке оно выдало: "Версия установленного продукта SQL Server: 10.50.1600.1. Ожидаемая версия SQL Server: 10.53.6000.34". И дальше не пошло. В общем, никакие рекомендации сетевых экспертов не прокатили. В конце концов на каком-то забугорном портале один спец написал, что никакие обновления, никакие обходные манёвры, чтобы подружить TLS 1.2 с SQL Server 2008 R2, не срабатывают и MSSQLSERVER будет стартовать только если включен протокол TLS 1.0.

Что же в итоге.

Чтобы запустить MSSQLSERVER включил TLS 1.0. MSSQLSERVER стартанул. Потом отключил TLS 1.0. При сканировании моего сайта zakupki-32.ru сервис SSL Labs выдал "зелёную карту". Значит всё нормально. Сервис на платформе ASP.NET с моего сайта также запустился без ошибок. Единственное "но": если сервер по каким-то причинам будет перезагружен, то служба MSSQLSERVER не стартанёт и для её запуска опять придётся включать TLS 1.0. Но, это - не критично.


  • Комментарии
Загрузка комментариев...


Возврат к списку