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

Требуется ли перезагрузка для отключения SSL V3 в Windows? - Подвиг пуделя

Мы пытаемся отключить SSL V3 на многих серверах Windows; в его рамках реестры обновляются удаленно через скрипт. Проблема в том, что после изменения реестра требуется много перезагрузок. Есть ли способ обойти это, можно ли перезапустить службу на сервере, чтобы больше не принимать SSL V3 после изменения реестра?

Изменить: немного больше разъяснений, это об отключении «сервера SSL V3»; на серверах Windows 2012 R2.

Да ... наверное ... если вы говорите о приложениях, которые вызывают schannel.dll.

Вы упомянули «Серверы» и упомянули «SSlv3», который является протоколом. Для внесения изменений в этот раздел реестра требуется перезагрузка.

Прочтите эту статью Microsoft: https://support.microsoft.com/en-us/kb/245030

Это в основном библия по этой теме.

Обратите внимание, что в статье говорится: «Изменения ключа CIPHERS или HASHES вступают в силу немедленно, без перезапуска системы».

Однако вы меняете ключ PROTOCOLS. Итак, перезагрузите.

РЕДАКТИРОВАТЬ: О, я забыл упомянуть самую важную часть - изменения в этом разделе реестра, они влияют только на приложения, которые обращаются к Schannel DLL. (Например, IIS, RDP, SQL Server и т. Д.) Они НЕ ВЛИЯЮТ на приложения, использующие сторонние библиотеки, такие как OpenSSL. В этих приложениях мы не можем знать, потребуется ли перезагрузка или нет, потому что это зависит от приложения.

Вы можете перезапустить службу HTTP, используя net stop http и net start http. Очевидно, это повлияет только на приложения, использующие его (например, IIS).

Вам также потребуется перезапустить любые службы в зависимости от службы HTTP и закрыть любой другой процесс, используя \Device\Http\* (иначе служба не остановится).

Вот сценарий PowerShell для всего этого. (Оно использует handle.exe из https://live.sysinternals.com/ и не учитывает несколько уровней зависимых служб.)

$depencies = Get-Service HTTP -DependentServices |? Status -eq Running
Stop-Service $depencies
.\handle.exe -nobanner -a \Device\Http\ |? { $_ -match '\s+pid:\s*(?<pid>\d+)\s+' } |% { $matches.pid } | gu |% { Stop-Process -Id $_ -Confirm }
Restart-Service HTTP
Start-Service $depencies

(Я тестировал это только на Windows 7.)