在 Windows 上禁用 SSL V3 是否需要重新启动?- Poodle 漏洞

在 Windows 上禁用 SSL V3 是否需要重新启动?- Poodle 漏洞

我们正在尝试禁用大量 Windows 服务器上的 SSL V3;作为其中的一部分,注册表正在通过脚本远程更新。问题是注册表更改后需要多次重新启动。有没有办法解决这个问题,是否可以在服务器上重新启动服务以在注册表更改后不再接受 SSL V3?

编辑:进一步澄清一下,这是关于在 Windows 2012 R2 服务器上禁用“SSL V3 服务器”。

答案1

是的...可能...如果您谈论的是调用 schannel.dll 的应用程序。

您提到了“服务器”,还提到了“SSlv3”,这是一种协议。更改此注册表项需要重新启动。

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

这基本上就是这个主题的圣经。

请注意,文章中说“对 CIPHERS 密钥或 HASHES 密钥的更改会立即生效,无需重新启动系统”。

但是,您正在更改 PROTOCOLS 键。因此,请重新启动。

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

答案2

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

您还需要重新启动任何依赖于 HTTP 服务的服务并关闭任何其他进程\Device\Http\*(否则服务将不会停止)。

下面是一个用于完成所有这些操作的 PowerShell 脚本。(它使用句柄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 上测试过。)

相关内容