簡體   English   中英

WCF 服務(自托管)通過 HTTPS - 獲取協商的 SSL/TLS 協議版本

[英]WCF service (self-hosted) over HTTPS - Get negotiated SSL/TLS protocol version

出於安全原因,我們希望在操作系統級別的服務器中禁用 TLS 1.0 支持(在以下 SChannel 注冊表中):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

但是因為SQL 服務器服務不會在禁用 TLS 1.0 的情況下啟動,所以我們不得不在操作系統級別啟用 TLS 1.0。

我們現在要做的是在應用程序級別而不是操作系統級別強制使用 TLS 1.2。

我們的應用程序是客戶端-服務器,在 .NET 4.5 上運行。 在Client上,在調用WCF服務之前,我們設置:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

這確保了客戶端將使用 TLS1.2 協議發送 ClientHello 消息。

但是在服務器上,這是自托管的 WCF 服務,我們看不到如何強制使用 TLS1.2。 服務器端的 SSL/TSL 協商基於 SChannel 注冊表,因此設置 ServicePointManager.SecurityProtocol 不會產生任何影響。

我們想在我們的服務器代碼中檢查傳入的 WCF 調用,並檢查調用使用的 TLS 協議,如果它低於 TLS1.2,則關閉連接。

有什么方法可以獲取傳入的 WCF 調用 SSL/TLS 協議版本? HttpContext.WebSocketNegotiatedProtocol 之類的東西?

您是否嘗試過使用sslStreamSecurity的自定義綁定?

<sslStreamSecurity requireClientCertificate="false" sslProtocols="Tls12" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM