![在 Windows 上停用 SSL V3 是否需要重新啟動? - 貴賓犬利用](https://rvso.com/image/658729/%E5%9C%A8%20Windows%20%E4%B8%8A%E5%81%9C%E7%94%A8%20SSL%20V3%20%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E9%87%8D%E6%96%B0%E5%95%9F%E5%8B%95%EF%BC%9F%20-%20%E8%B2%B4%E8%B3%93%E7%8A%AC%E5%88%A9%E7%94%A8.png)
我們正在嘗試在許多 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 腳本。 (它用句柄.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 上進行了測試。)