通过 tls 1.2 调用 Aws C# 开发工具包时出错



PayPal 在联系他们的 API 时很快就会强制使用 TLS 1.2。 此行为已在他们的沙盒上强制执行。

我们刚刚被一个副作用所困,即在调用 API 后PayPal对 AWS 开发工具包的任何后续调用都会失败。

有人遇到同样的问题并找到了解决方法?

正如 AWS

开发人员论坛上的此讨论所指出的,在发布本文时,AWS 开发工具包不支持 TLS 1.2。因此,在他们也实现对 TLS 1.2 的支持之前,您将无法在应用程序中专门迁移到 TLS 1.2。

存在一种解决方法,可以手动设置应用程序的通信协议。 在下面的示例中,更新了 ServicePointManager.SecurityProtocol 以启用对应用程序中 TLS 1.0、TLS 1.1 和/或 TLS 1.2 的支持:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

此更改应允许您使用 TLS 1.2 与PayPal通信,同时根据需要回退到旧版本以与 AWS 开发工具包进行通信。

笔记:

  • 手动设置此设置会给您带来负担,您需要定期查看此内容,并最终删除对旧 TLS 版本的支持,因为它们变得不必要和/或存在安全风险。 这就是符合PCI标准的API迁移到TLS 1.2的动机。密切关注适用于 .NET 的 AWS 开发工具包的更新,以便能够尽快放弃较旧的 TLS 支持。
  • Tls11Tls12 仅在 .NET 版本 4.5+ 的 SecurityProtocolType 枚举中可用。

延伸阅读:

  • MSDN - ServicePointManager.SecurityProtocol Property

  • Amazon S3 – 有关禁用 SSLv3 的常见问题 - 包括有关 TLS 及其在 AWS 开发工具包中的用法的有用讨论。

  • 如何禁用 SSL 回退并仅对 .NET 中的出站连接使用 TLS?(贵宾犬缓解( - 一个很好的相关问题/答案,评论了与TLS 1.0相关的安全风险以及迁移到TLS 1.2的动机。

相关内容

  • 没有找到相关文章

最新更新