Inicio
DocumentaciĂłn
Recursos
Partners
Comunidad

Recursos

Revisa las actualizaciones de nuestras soluciones y operatividad del sistema o pide soporte técnico.

Partners

Conoce nuestro programa para agencias o desarrolladores que ofrecen servicios de integraciĂłn y vendedores que quieren contratarlos.

Comunidad

Recibe las Ășltimas novedades, pide ayuda a otros integradores y comparte tus conocimientos.

Apagado del cifrado TLS 1.1 - Comercios PCI-Compliant - Mercado Pago Developers

Apagado del cifrado TLS 1.1 en Mercado Pago

En Mercado Pago siempre buscamos optimizar nuestra plataforma ofreciendo la mayor capacidad y seguridad en el procesamiento de pagos.

En esta ocasiĂłn, estamos trabajando en el apagado de TLS 1.1 para los dominios https://api.mercadopago.com y https://pagamento.mercadopago.com con el objetivo de mantener los mĂĄs altos estĂĄndares de calidad y promover la seguridad de los datos de nuestros clientes.

Importante
Una vez que desactivemos TLS 1.1, cualquier conexión que establezcas utilizando TLS 1.1 fallarå. Ademås, Mercado Pago requerirå que sus conexiones a los dominios https://api.mercadopago.com y https://pagamento.mercadopago.com sean a través del protocolo de cifrado TLS 1.2 o superior.

Puntos a tener en cuenta

  • Si operĂĄs sĂłlo en Mercado Libre este cambio no te afectarĂĄ.
  • Si operĂĄs sĂłlo con botones de pago de Mercado Pago este cambio no te afectarĂĄ.
  • Si operĂĄs sĂłlo en Mercado Shops este cambio no te afectarĂĄ.
  • Si operĂĄs sĂłlo en VTEX este cambio no te afectarĂĄ.
  • Si tenĂ©s tu propio e-commerce consulta a tu soporte tĂ©cnico.
  • Si operas con alguna plataforma de e-commerce por ejemplo: Magento, Shopify u otros consulta a su soporte tĂ©cnico.

IntroducciĂłn

TLS es el acrónimo de “Transport Layer Security” (Seguridad de la capa de transporte). Es un protocolo que proporciona privacidad e integridad de los datos entre dos aplicaciones que se comunican.

Es el protocolo de seguridad mås extendido que se utiliza en la actualidad, y se emplea para navegadores y otras aplicaciones que requieran que los datos se intercambien de forma segura en una red. TLS garantiza que una conexión con un extremo remoto se realiza en el extremo que se espera a través de cifrado y la verificación de la identidad del extremo. Las versiones de TLS hasta la fecha son TLS 1.0, 1.1 y 1.2 y 1.3.

Las conexiones de Internet y de API de Mercado Pago utilizan TLS como componente clave de su seguridad.

HTTPS (web) y STARTTLS SMTP (email) también utilizan TLS como componente de seguridad.

¿Por qué se va a realizar este cambio?

En Mercado Pago nos tomamos muy en serio la seguridad y ayudamos a nuestros clientes a mejorarla empleando los protocolos de seguridad mĂĄs recientes.

AcciĂłn requerida para integraciones de API

Si tus integraciones que utilizan conexiones entrantes con Mercado Pago no tiene el protocolo TLS 1.2 o superior activado tras realizar este cambio, empezarĂĄn a fallar

Importante
Te recomendamos que realices la inclusiĂłn del protocolo TLS 1.2 antes del 12 de junio de 2023.

Consulte las directrices de compatibilidad a continuaciĂłn:

PlataformaNotas de Compatibilidad
Java (Oracle)Compatible con la versiĂłn mĂĄs reciente, sin que el sistema operativo sea relevante.
Java 8 (1.8) y versiones posterioresCompatible con el cifrado TLS 1.2 o versiones posteriores de forma predeterminada.
Java 7 (1.7)Active TLS 1.2 utilizando la propiedad del sistema Java https.protocols para HttpsURLConnection. Para activar TLS 1.2 en conexiones sin HttpsURLConnection, establezca los protocolos activados en las instancias creadas de SSLSocket y SSLEngine dentro del cĂłdigo fuente de la aplicaciĂłn. Cambiar a IBM Java puede ser una soluciĂłn efectiva si la actualizaciĂłn a una versiĂłn de Oracle Java mĂĄs reciente no es posible.
Java 8Compatible con el cifrado TLS 1.2 o versiones posteriores de forma predeterminada. Es posible que tenga que establecer com.ibm.jsse2.overrideDefaultTLS=true si su aplicaciĂłn o una biblioteca que la llame utiliza SSLContext.getinstance("TLS").
Java 7 y versiones posteriores, la actualizaciĂłn de servicio 1 de Java 6.0.1 (J9 VM2.6) y versiones posteriores y la actualizaciĂłn de servicio 10 de Java 6 y versiones posterioresActive TLS 1.2 empleando la propiedad del sistema de Java https.protocols para HttpsURLConnection y la propiedad del sistema de Java com.ibm.jsse2.overrideDefaultProtocol para conexiones SSLSocket y SSLEngine, segĂșn recomienda la documentaciĂłn de IBM. Es posible que tambiĂ©n tenga que establecer com.ibm.jsse2.overrideDefaultTLS=true.
.NETCompatible con la versiĂłn mĂĄs reciente cuando se ejecuta en un sistema operativo que admita TLS 1.2
.NET 4.6 y versiones posterioresCompatible con el cifrado TLS 1.2 o versiones posteriores de forma predeterminada.
.NET 4.5 a 4.5.2.NET 4.5, 4.5.1 y 4.5.2 no activan TLS 1.2 de forma predeterminada. Existen dos opciones para activarlas, como se describe a continuaciĂłn.
.NET 4.0.NET 4.0 no activa TLS 1.2 de forma predeterminada. Para activar TLS 1.2 de forma predeterminada, es posible instalar .NET Framework 4.5 o una versión posterior, y establecer el valor DWORD de SchUseStrongCrypto en 1 en las siguientes dos entradas del registro del sistema, creåndolas si no existen: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319" y "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v4.0.30319". No obstante, esas claves del registro del sistema pueden activar TLS 1.2 de forma predeterminada en todas las aplicaciones .NET 4.0, 4.5, 4.5.1 y 4.5.2 instaladas en ese sistema. Recomendamos probar este cambio antes de implementarlo en sus servidores de producción. Esto también estå disponible como un archivo de importación para el registro del sistema.Sin embargo, estos valores del registro del sistema no afectarån a las aplicaciones .NET que establecen el valor System.Net.ServicePointManager.SecurityProtocol.
.NET 3.5 y versiones anterioresNo son compatibles con el cifrado TLS 1.2 o versiones posteriores
PythonCompatible con la versiĂłn mĂĄs reciente cuando se ejecuta en un sistema operativo que admita TLS 1.2
Python 2.7.9 y versiones posterioresCompatible con el cifrado TLS 1.2 o versiones posteriores de forma predeterminada.
Python 2.7.8 y versiones anterioresNo son compatibles con el cifrado TLS 1.2 o versiones posteriores
RubyEs compatible con la versiĂłn mĂĄs reciente y estable cuando se vincula con OpenSSL 1.0.1 o versiones posteriores.
Ruby 2.0.0TLS 1.2 se activa de forma predeterminada cuando se utiliza con OpenSSL 1.0.1 o versiones posteriores. El uso de los sĂ­mbolos :TLSv1_2 con ssl_version de SSLContext ayuda a garantizar que se desactiva TLS 1.0 o versiones anteriores.
Ruby 1.9.3 y versiones anterioresEl sĂ­mbolo :TLSv1_2 no existe en la versiĂłn 1.9.3 y anteriores, pero es posible parchear Ruby para agregar ese sĂ­mbolo y compilar Ruby con OpenSSL 1.0.1 o versiones posteriores.
Android 5.x y superiorTLS 1.2 EstĂĄ soportado de forma predeterminada.

ÂżCĂłmo verificar la versiĂłn actual de TLS integraciĂłn?

Para poder validar si tu integraciĂłn mantiene una conexiĂłn usando un protocolo distinto a TLS 1.0, puedes usar el siguiente snippet dentro de tu aplicaciĂłn para verificar que protocolo se estĂĄ usando por defecto para las conexiones.

          
<?php
  $curl_info = curl_version();
  echo "protocol: " . $curl_info['ssl_version'];
?>

        
          
SSLSocket ss = (SSLSocket) SSLSocketFactory.getDefault().createSocket("api.mercadopago.com", 443);
System.out.println("protocol: " + ss.getSession().getProtocol());

        
          
string strWebsiteName = "api.mercadopago.com";
TcpClient _myClient = new TcpClient();
SslStream _myStream;
_myClient.Connect(strWebsiteName, 443);
_myStream = new SslStream(_myClient.GetStream());
_myStream.AuthenticateAsClient(strWebsiteName);

Console.WriteLine("protocol : " + _myStream.SslProtocol);