1

我不是 SSL/TLS 专家。但遇到以下情况

我们从供应商处连接到 Web 服务,“安全策略”是 TLSv1,一切都像一个魅力。该供应商将那里的安全策略升级到 TLSv1_2016。

从那时起,通信就失败了。当他们再次回滚所有作品时。

现在,在看了我们如何建立联系的方式之后,我变得更加困惑。

我们使用 .NET (Framework 4.7.0XXX) 并使用以下类System.ServiceModel.Channels.CustomBinding

根据文档,这应该(默认情况下)支持 Ssl3、Tls、Tls1.1、Tls1.2。https://technet.microsoft.com/en-us/system.servicemodel.channels.sslstreamsecuritybindingelement.sslprotocols(v=vs.96)

这似乎足够了。

在 AWS 我发现以下概述

TLSv1.2 支持足以满足 SSLv3 TLSv1.0 TLSv1_2016 TLSv1.1_2016 TLSv1.2_2018

TLSv1.1 支持足以满足 SSLv3 TLSv1.0 TLSv1_2016 TLSv1.1_2016

TLSv1 支持足以满足 SSLv3 TLSv1.0 TLSv1_2016

所以看这个信息。我猜想我们通过 System.ServiceModel.Channels.CustomBinding 建立连接的方式应该足以与他们升级的(到 TLSv1_2016)策略进行交互(即使它是 TLSv1.1_2016 它应该可以工作,我正在考虑在他们的沟通中说明一个错字:-))

有没有人遇到过这个问题?或有任何想法在哪里进一步调查。

在此先感谢, 问候,乔

4

2 回答 2

0

您在 MSDN 上阅读的文档不正确。

请务必访问 Microsoft Docs 上的最新信息,例如最佳实践,

https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls?view=netframework-4.7.2

您没有透露足够的信息(例如您的 WCF 代码),但根据 Microsoft 的信息,旧 .NET Framework 版本上的 WCF 默认使用 SSL 3.0/TLS 1.0,如果您无法升级 .NET,则必须在代码中明确选择 TLS 1.2框架版本。(那篇文章中的“if else”太多了,所以请在每个相关段落上花足够的时间并相应地进行实验。)

最重要的是,“重新定位您的程序集”,这意味着针对 .NET Framework 4.6.x 或 4.7.x 重新编译您的程序集。

于 2018-07-05T16:28:02.433 回答
0

全部,

感谢您的所有帮助和建议,就像我正在寻找答案但找不到它,这是我自己的错 :-(

有人告诉我我们使用的是 4.7.0 框架,而我发现的所有东西都毫无意义,现在看来我们的构建服务器使用的是 4.5.2 框架……现在一切都说得通了。

SSL3 和 TLS1 以及 WCF 和框架 452 中没有其他可能性......

再次感谢您的帮助和指导。

现在我们正在寻找重新定位到 FW 472 .. 但有一些问题...

于 2018-07-27T13:31:12.983 回答