簡體   English   中英

客戶端和服務器無法通信,因為它們沒有通用的算法C#SslStream

[英]The client and server cannot communicate, because they do not possess a common algorithm, C# SslStream

以下是我在Windows 10上為客戶端/服務器控制台應用程序進行相互SSL身份驗證的設置:

  1. 有一個服務器監聽器控制台應用程序只接受TLS 1.0連接。
  2. 客戶端控制台應用程序使用SslStream.AuthenticateAsClient配置安全連接並使用TLS 1.2連接。
  3. 我使用以下示例進行相互SSL身份驗證: http//www.codeproject.com/Articles/326574/An-Introduction-to-Mutual-SSL-Authentication

服務器代碼:

sslStream.AuthenticateAsServer(certificate, true, SslProtocols.Tls, true);

客戶代碼:

sslStream.AuthenticateAsClient(hostName, certificates, SslProtocols.Tls12, true);

錯誤:

例外:對SSPI的調用失敗,請參閱內部異常。

內部異常:客戶端和服務器無法通信,因為它們沒有通用算法

題:

當我將SslProtocols在客戶端和服務器中更改為相同時,即TLS 1.0時,SSL握手成功。 當客戶端和服務器上的SSL協議不同時,為什么握手失敗?

協議必須相同。 您必須“協商”服務器和客戶端之間的通用協議,否則他們無法使用相同的語言。 SslProtocols枚舉標記為[Flags]以便您可以指定多個協議,例如SslProtocols.Tls | SslProtocols.Tls12 SslProtocols.Tls | SslProtocols.Tls12

暫無
暫無

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

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