Actualmente tengo una aplicación web que usa el marco .NET 3.5 y me pregunto si será compatible con TLS 1.2. En ninguna parte de nuestro código estamos dictando la versión TLS. Esta es una aplicación heredada y la recompilación no está sobre la mesa en este momento. No encuentro mucha información sobre si puede o no, pero tenía la impresión de que la compatibilidad depende más de la versión del sistema operativo. Parece que el mínimo es 2008 R2. El objetivo es conseguir que paypal se comunique correctamente el 1 de julio.
Como se mencionó, .net 3.5.1 ahora es compatible con TLS 1.2; pero no necesita los cambios de registro mencionados en la respuesta de @Paulina.
Estoy usando VS 2008 con .net 3.5.30729.4926. Todo lo que tenía que hacer era:
Agregar importaciones:
Imports System.Security.Authentication Imports System.NetAgregue esto a mi código (C#):
public const SslProtocols _Tls12 = (SslProtocols)0x00000C00; public const SecurityProtocolType Tls12 = (SecurityProtocolType)_Tls12; ServicePointManager.SecurityProtocol = Tls12Versión de VB.net:
Const _Tls12 As SslProtocols = DirectCast(&HC00, SslProtocols) Const Tls12 As SecurityProtocolType = DirectCast(_Tls12, SecurityProtocolType) ServicePointManager.SecurityProtocol = Tls12Extraído de: https://support.microsoft.com/en-us/help/3154518/support-for-tls-system-default-versions-included-in-the-.net-framework Nota: al definir la const en mi código podría ignorar todo lo demás en el artículo, incluidas las ediciones del registro y los archivos cs.
Como puede ver en los documentos , TLS 1.2 no está en la enumeración de SslProtocols , se agregó a la enumeración en .NET 4.5 (gracias @orhun).
No existe una solución alternativa para la compatibilidad con TLS 1.2 en .NET 3.5.
Desafortunadamente, tendrá que actualizar a .NET 4.5 o posterior para obtener compatibilidad con TLS 1.2.
EDITAR 10/11/17
Mi respuesta anterior ya no es precisa. En mayo de 2017, Microsoft lanzó un paquete para permitir TLS 1.2 en .NET 3.5.1 .
Puede hacer que TLS 1.2 funcione con Framework 3.5.
Microsoft ha lanzado una actualización para ello.
Sigue estos pasos
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
Asigne un nombre al archivo y guárdelo con la extensión .reg (guárdelos como copia de seguridad en caso de que necesite restaurarlos)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001
Haga doble clic en el archivo y haga clic en Sí en la ventana para permitir cambios
Apliqué esta solución y funcionó para mí.