在Windows上禁用SSL V3需要重启吗? – 贵宾犬利用

我们正试图在众多的Windows服务器上禁用SSL V3; 作为其中的一部分,注册pipe理机构正在通过脚本进行远程更新。 问题是registry更改后需要大量重新启动。 有没有办法绕过它,服务器可以重新启动服务器不再接受SSL V3后,registry更改?

编辑:稍微澄清,这是关于“SSL V3服务器”禁用; 在Windows 2012 R2服务器上。

是的…可能…如果你正在谈论调用schannel.dll的应用程序。

你提到“服务器”,你提到了“SSlv3”这是一个协议。 对此registry项的更改需要重新启动。

阅读此Microsoft文章: https : //support.microsoft.com/en-us/kb/245030

这基本上是这个话题的圣经。

请注意,文章中提到“CIPHERS键或HASHES键的更改会立即生效,而不会重新启动系统”。

但是,您正在更改PROTOCOLS密钥。 所以,重新启动。

编辑:哦,我忘了提及最重要的部分 – 对此registry项的更改,它们只影响调用到Schannel DLL的应用程序。 (如IIS,RDP,SQL Server等)它们对使用第三方库(如OpenSSL)的应用程序没有任何影响。 在这些应用程序中,我们不可能知道它是否需要重新启动,因为它取决于应用程序。

您可以使用net stop httpnet start http重新启动HTTP服务。 这显然只会影响使用它的应用程序(如IIS)。

您还需要根据HTTP服务重新启动任何服务,并使用\Device\Http\*closures任何其他进程(否则服务将不会停止)。

这是一个PowerShell脚本来完成这一切。 (它使用https://live.sysinternals.com/中的 handle.exe ,并不考虑多个相关服务级别。)

 $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上testing过)