通过tls 1.2调用Aws C#SDK时出错

时间:2016-01-29 16:55:11

标签: c# amazon-web-services payment-gateway paypal-sandbox tls1.2

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

我们刚被副作用困住的是,在调用Paypal API之后,对AWS SDK的任何后续调用都失败了。

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

1 个答案:

答案 0 :(得分:0)

this discussion on the AWS developer forums所述,在此发布时,AWS SDK不支持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 SDK进行通信。

备注:

  • 手动设置此项会给您带来责任,要求您定期查看此内容,并最终删除对较旧TLS版本的支持,因为它们会变得不必要和/或存在安全风险。这是符合PCI标准的API转向TLS 1.2的动机。密切关注AWS SDK for .NET的更新,以便您能够尽快删除旧的TLS支持。
  • Tls11Tls12仅适用于.NET版本4.5 +的SecurityProtocolType枚举。

进一步阅读: