Требуется ли перезагрузка для отключения SSL V3 в Windows? - Пудель эксплуатирует
Мы пытаемся отключить SSL V3 на многочисленных серверах Windows; как часть этого, реестры обновляются удаленно через скрипт. Проблема в том, что после изменения реестра требуется много перезагрузок. Есть ли способ обойти это, можно ли перезапустить сервис на сервере, чтобы он больше не принимал SSL V3 после изменения реестра?
Изменить: немного больше пояснений, это о отключении "SSL V3 сервер"; на серверах windows 2012 R2.
2 ответа
Да... вероятно... если вы говорите о приложениях, которые вызывают 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.)