As noted by this discussion on the AWS developer forums, at the time of this posting TLS 1.2 is not supported by the AWS SDK. Consequently, you won't be able to move to TLS 1.2 exclusively in your application until they also implement support for it.
A workaround exists where your application's communication protocol can be manually set. In the example below, ServicePointManager.SecurityProtocol is updated to enable support for TLS 1.0, TLS 1.1, and/or TLS 1.2 in the application:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
This change should allow your communication to communicate to PayPal with TLS 1.2, while falling back to older versions as necessary for communication with AWS SDK.
Notes:
- Manually setting this puts a burden of responsibility on you to periodically review this and eventually remove support for older TLS versions as they become unnecessary and/or security risks. This is the motivation for PCI-compliant APIs moving to TLS 1.2. Keep an eye on updates to the AWS SDK for .NET so that you'll be able to drop older TLS support as soon as possible.
Tls11
and Tls12
are only available in the SecurityProtocolType
enum for .NET versions 4.5+.
Further Reading: