簡體   English   中英

WebService 使用 TLS1.1,TLS1.2 無法連接到開發服務器,在本地開發中工作

[英]WebService using TLS1.1, TLS1.2 unable to connect on development server, works in local development

我有一個設置為使用 TLS1.1 或更高版本的 .NET WebService 調用。 這適用於我的本地開發,但是當我移動到我們的開發服務器時,我收到以下錯誤:

無法為 xxx 數據執行請求 - - 請求已中止:無法創建 SSL/TLS 安全通道。

在代碼中,我有 tls 設置:

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls13 | SecurityProtocolType.Ssl3;

我已經在服務器上驗證了注冊表設置對於啟用TLS1.1、1.2等是否正確...通過檢查: *HKEYLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\SCHANNEL\\Protocols[TLS 1.1, TLS 1.2]* I在這些位置為“客戶端”和“服務器”鍵設置 DisabledByDefault = 0 和 Enabled = 1

在 Windows 系統日志中,有一個 Schannel 錯誤:EventID 36887:收到來自遠程端點的致命警報。 TLS 協議定義的致命警報代碼是 40。

我不知道從這里去哪里。 我覺得這可能是一個簡單的設置或注冊表調整,但我現在迷路了。

在此先感謝您的幫助

如果我理解正確的話,您的代碼可以在一台服務器上運行,但在另一台服務器上不起作用。 在這種情況下,似乎至少您已經正確配置了 .Net Framework,但正如其中一條評論建議您檢查您的操作系統是否支持 TLS 1.1(也許值得檢查您是否也在完全相同的 .net 框架版本上運行)。

我看到您使用的是 win server 2012 並且它似乎在那里默認未啟用。 下面是從MS文檔報價在這里

早期版本的 Windows(例如 Windows 7 或 Windows Server 2012)默認情況下不啟用 TLS 1.1 或 TLS 1.2 以使用 WinHTTP 進行安全通信。 對於這些早期版本的 Windows,安裝更新 3140245 以啟用下面的注冊表值,可以將其設置為將 TLS 1.1 和 TLS 1.2 添加到 WinHTTP 的默認安全協議列表。

嘗試查看文檔並驗證 TLS 1.1。 在操作系統中啟用。

PS 如果您嘗試連接的服務器支持 TLS 1.2,我根本不會理會 TLS 1.1,只是強制所有人使用 TLS 1.2。

暫無
暫無

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

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