在 Windows 上停用 SSL V3 是否需要重新啟動? - 貴賓犬利用

在 Windows 上停用 SSL V3 是否需要重新啟動? - 貴賓犬利用

我們正在嘗試在許多 Windows 伺服器上停用 SSL V3;作為其中的一部分,註冊表可以透過腳本進行遠端更新。問題是註冊表更改後需要多次重新啟動。有沒有辦法解決這個問題,可以在伺服器上重新啟動服務以在註冊表更改後不再接受 SSL V3 嗎?

編輯:更多澄清,這是關於“SSL V3 伺服器”禁用;在 Windows 2012 R2 伺服器上。

答案1

是的...可能...如果您正在談論呼叫 schannel.dll 的應用程式。

您提到了“伺服器”,並提到了“SSlv3”,這是一種協定。更改此註冊表項需要重新啟動。

閱讀這篇微軟文章: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 腳本。 (它用句柄.exehttps://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 上進行了測試。)

相關內容