【问题标题】:TLS 1. 2 The client and server cannot communicate, because they do not possess a common algorithmTLS 1. 2 客户端和服务器无法通信,因为它们没有共同的算法
【发布时间】:2019-02-18 13:23:33
【问题描述】:

我对 TLS 1.2 有疑问。 如果我在客户端机器上启用 tls1.0 就可以了,但不建议这样做。

例外是 - 客户端和服务器无法通信,因为它们 做 不具备通用算法System.ComponentModel.Win32Exception (0x80004005):客户端和服务器无法通信,因为它们可以通信 不具备通用算法。

我的应用程序的目标框架是 .NET 4.6.2。

【问题讨论】:

  • 你在2012服务器上启用1.2了吗?下载 iiscrypto 实用程序以验证这一点并在需要时启用它。
  • @AlexK.,是的,它们已启用。
  • 使用wireshark/network monitor等软件,检查ClientHello和ServerHello TLS消息中的算法。
  • @AlexK.,我使用了 iiscrypto,发现 windows 10 使用 tls1.0。感谢您推荐这个程序。
  • 对于基于 .NET Framework 4.6.2 的应用,您需要对代码库进行一些更改docs.microsoft.com/en-us/dotnet/framework/network-programming/…

标签: c# .net windows tls1.2


【解决方案1】:

有两种可能的情况,就我而言,我使用了第二点。

  1. 如果您在生产环境中遇到此问题,并且可以轻松地将新代码部署到生产环境中,那么您可以使用以下解决方案。

    您可以在调用 api 之前添加以下代码行,

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; // .NET 4.5

  2. 如果您无法部署新代码并且希望使用生产中存在的相同代码解决此问题,则可以通过更改配置文件中的某些配置设置来解决此问题。 您可以在配置文件中添加其中任何一个。

<runtime>
    <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=false"/>
  </runtime>

<runtime>
  <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"
</runtime>

【讨论】:

  • 选项 1 对我有用,帮助很大!
【解决方案2】:

这些是我解决问题的故障排除步骤。

  1. 安装 IISCrypto.exe,并在我的本地服务器和客户端上关闭 TSL 1.0/1.1,只启用 TSL 1.2。
  2. 在我的 .NET 应用程序 web.conf 中
 <system.web>
    <compilation debug="true" targetFramework="4.8" /> 
    <httpRuntime targetFramework="4.8" />
  1. 工具 > NuGet 包管理器 > 管理解决方案的 NuGet 包。

检查MySql.Data和MySql.Web的安装版本(是6.9.9.0)

安装并更新 MySql.Data 和 MySql.Web 到版本 8.0.23

此时,我的本地 .NETweb 服务器可以与本地 MySql 服务器通信。但是在部署到生产服务器后(仅启用了 TLS 1.2),出现了不同的错误消息。

 Fail to load MySql.Data assembly

 WRN: Assembly binding logging is turned OFF.
  1. 查看生产服务器下的MySql.Web.dll & MySql.Data.dll ...\myapp\bin
    发现MySql.Data.dll还在6.9版本。

    将 MySql.Data.dll v.8.0.23 复制并粘贴到生产服务器(从我的本地 bin 文件夹中)。它解决了生产服务器上的问题。

【讨论】:

    猜你喜欢
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2016-11-09
    • 1970-01-01
    相关资源
    最近更新 更多