PayPal 在联系他们的 API 时很快就会强制使用 TLS 1.2。 此行为已在他们的沙盒上强制执行。
我们刚刚被一个副作用所困,即在调用 API 后PayPal对 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 支持。
-
Tls11
和Tls12
仅在 .NET 版本 4.5+ 的SecurityProtocolType
枚举中可用。
延伸阅读:
MSDN - ServicePointManager.SecurityProtocol Property
Amazon S3 – 有关禁用 SSLv3 的常见问题 - 包括有关 TLS 及其在 AWS 开发工具包中的用法的有用讨论。
如何禁用 SSL 回退并仅对 .NET 中的出站连接使用 TLS?(贵宾犬缓解( - 一个很好的相关问题/答案,评论了与TLS 1.0相关的安全风险以及迁移到TLS 1.2的动机。