

 La [Guía de referencia de la API de AWS SDK for JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) describe en detalle todas las operaciones de la API para la versión 3 (V3) de AWS SDK for JavaScript. 

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Aplicar una versión mínima de TLS
<a name="enforcing-tls"></a>

Para aumentar la seguridad a la hora de comunicarse con AWS los servicios, configúrelos AWS SDK para JavaScript para que utilicen TLS 1.2 o una versión posterior. 

Transport Layer Security (TLS) es un protocolo que utilizan los navegadores web y otras aplicaciones para garantizar la privacidad e integridad de los datos intercambiados a través de una red.

**importante**  
El 10 de junio de 2024, [anunciamos](https://aws.amazon.com/blogs//security/faster-aws-cloud-connections-with-tls-1-3/) que TLS 1.3 estará disponible en los puntos finales de las API de AWS servicio de todas las regiones. AWS La AWS SDK para JavaScript versión 3 no negocia la propia versión de TLS. En su lugar, utiliza la versión de TLS determinada por Node.js, que se puede configurar mediante `https.Agent`. AWS recomienda utilizar la versión de LTS activa actual de Node.js.

## Verificar y aplicar TLS en Node.js
<a name="node-verify-enforce-tls"></a>

Cuando se utiliza AWS SDK para JavaScript con Node.js, se utiliza la capa de seguridad Node.js subyacente para configurar la versión de TLS.

Node.js 12.0.0 y las versiones posteriores utilizan una versión mínima de OpenSSL 1.1.1, que admite TLS 1.3. Node.js usa de forma predeterminada TLS 1.3 cuando está disponible. Si es necesario, puede especificar un versión diferente de forma explícita.

### Verificar la versión de OpenSSL y TLS
<a name="verify-tls-version"></a>

Para obtener la versión de OpenSSL que usa Node.js en su equipo, ejecute el siguiente comando.

```
node -p process.versions
```

La versión de OpenSSL de la lista es la versión que utiliza Node.js, como se muestra en el siguiente ejemplo.

```
openssl: '1.1.1b'
```

Para obtener la versión de TLS que usa Node.js en su equipo, inicie el shell de Node y ejecute los siguientes comandos, en orden.

```
> var tls = require("tls");
> var tlsSocket = new tls.TLSSocket();
> tlsSocket.getProtocol();
```

El último comando genera la versión de TLS, como se muestra en el siguiente ejemplo.

```
'TLSv1.3'
```

Node.js utiliza de forma predeterminada esta versión de TLS e intenta negociar otra versión de TLS si una llamada no se realiza correctamente.

### Comprobación de las versiones mínima y máxima de TLS compatibles
<a name="checking-tls-version-min-max"></a>

Los desarrolladores pueden comprobar las versiones mínima y máxima de TLS compatibles en Node.js mediante el siguiente script:

```
import tls from "tls";
console.log("Supported TLS versions:", tls.DEFAULT_MIN_VERSION + " to " + tls.DEFAULT_MAX_VERSION);
```

El último comando genera la versión de TLS mínima y máxima predeterminada, como se muestra en el siguiente ejemplo.

```
Supported TLS versions: TLSv1.2 to TLSv1.3
```

### Aplicar una versión mínima de TLS
<a name="enforce-tls-version"></a>

Node.js negocia una versión de TLS cuando se produce un error en una llamada. Puede aplicar la versión de TLS mínima permitida durante esta negociación, ya sea al ejecutar un script desde la línea de comandos o por solicitud del código. JavaScript 

Para especificar la versión mínima de TLS desde la línea de comandos, debe utilizar Node.js versión 11.4.0 o posterior. Para instalar una versión específica de Node.js, primero instale Node Version Manager (nvm) siguiendo los pasos que encontrará en [Instalación y actualización de Node Version Manager](https://github.com/nvm-sh/nvm#installing-and-updating). A continuación, ejecute los siguientes comandos para instalar y usar una versión específica de Node.js. 

```
nvm install 11
nvm use 11
```

------
#### [ Enforce TLS 1.2 ]

Para forzar que TLS 1.2 sea la versión mínima permitida, especifique el argumento `--tls-min-v1.2` al ejecutar el script, como se muestra en el siguiente ejemplo.

```
node --tls-min-v1.2 yourScript.js
```

Para especificar la versión de TLS mínima permitida para una solicitud específica en el JavaScript código, utilice el `minVersion` parámetro para especificar el protocolo, como se muestra en el siguiente ejemplo.

```
import https from "https";
import { NodeHttpHandler } from "@smithy/node-http-handler";
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";

const client = new DynamoDBClient({
    region: "us-west-2",
    requestHandler: new NodeHttpHandler({
        httpsAgent: new https.Agent(
            {
                minVersion: 'TLSv1.2'
            }
        )
    })
});
```

------
#### [ Enforce TLS 1.3 ]

Para forzar que TLS 1.3 sea la versión mínima permitida, especifique el argumento `--tls-min-v1.3` al ejecutar el script, como se muestra en el siguiente ejemplo.

```
node --tls-min-v1.3 yourScript.js
```

Para especificar la versión de TLS mínima permitida para una solicitud específica en el JavaScript código, usa el `minVersion` parámetro para especificar el protocolo, como se muestra en el siguiente ejemplo.

```
import https from "https";
import { NodeHttpHandler } from "@smithy/node-http-handler";
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";

const client = new DynamoDBClient({
    region: "us-west-2",
    requestHandler: new NodeHttpHandler({
        httpsAgent: new https.Agent(
            {
                minVersion: 'TLSv1.3'
            }
        )
    })
});
```

------

## Verificar y aplicar TLS en un script de navegador
<a name="browser-verify-enforce-tls"></a>

Cuando utilizas el SDK JavaScript en un script del navegador, la configuración del navegador controla la versión de TLS que se utiliza. La versión de TLS que utiliza el navegador no se puede detectar ni establecer mediante script y el usuario debe configurarla. Para verificar y aplicar la versión de TLS que se utiliza en un script de navegador, consulte las instrucciones de su navegador específico.

------
#### [ Microsoft Internet Explorer ]

1. Abra **Internet Explorer.**

1. En la barra de menús, seleccione la pestaña **Herramientas** ▸ **Opciones de Internet** ▸ **Avanzadas**.

1. Desplácese hacia abajo hasta la categoría **Seguridad** y marque manualmente la casilla de opción **Usar TLS 1.2**.

1. Haga clic en **OK (Aceptar)**.

1. Cierre el navegador y reinicie Internet Explorer.

------
#### [ Microsoft Edge ]

1. En el cuadro de búsqueda del menú de Windows, escriba*Internet options*.

1. En **Mejor coincidencia**, haga clic en **Opciones de Internet**.

1. En la ventana **Propiedades de Internet**, en la pestaña **Avanzadas**, desplácese hacia abajo hasta la sección **Seguridad**.

1. Marque la casilla de verificación **Usar TLS 1.2**.

1. Haga clic en **OK (Aceptar)**.

------
#### [ Google Chrome ]

1. Abra **Google Chrome**.

1. Haga clic en **Alt F** y seleccione **Configuración**.

1. Desplácese hacia abajo y seleccione **Mostrar configuración avanzada...**

1. Desplácese hasta la sección **Sistema** y haga clic en **Abrir configuración de proxy...**

1. Seleccione la pestaña **Avanzado**.

1. Desplácese hacia abajo hasta la categoría **Seguridad** y marque manualmente la casilla de opción **Usar TLS 1.2**.

1. Haga clic en **OK (Aceptar)**.

1. Cierre el navegador y reinicie Google Chrome.

------
#### [ Mozilla Firefox ]

1. Abra **Firefox**.

1. En la barra de direcciones, escriba **about:config** y pulse Intro.

1. En el campo **Buscar**, escriba **tls**. Busque la entrada **security.tls.version.min** y haga doble clic en ella.

1. Establezca el valor entero en 3 para hacer que el protocolo de TLS 1.2 sea el predeterminado.

1. Haga clic en **OK (Aceptar)**.

1. Cierre el navegador y reinicie Mozilla Firefox.

------
#### [ Apple Safari ]

No hay opciones para activar protocolos SSL. Si utiliza la versión 7 o superior de Safari, TLS 1.2 se habilita automáticamente.

------

## Recuperando la versión TLS en las solicitudes de la versión 3 AWS SDK para JavaScript
<a name="retrieve-tls-version"></a>

Puede registrar la versión de TLS utilizada en una solicitud de AWS SDK con el siguiente script:

```
import { S3Client, ListBucketsCommand } from "@aws-sdk/client-s3";
import tls from "tls";

const client = new S3Client({ region: "us-east-1" });

const tlsSocket = new tls.TLSSocket();

client.middlewareStack.add((next, context) => async (args) => {
  console.log(`Using TLS version: ${tlsSocket.getProtocol()}`);
    return next(args);
});
```

El último comando genera la versión de TLS en uso, como se muestra en el siguiente ejemplo.

```
Using TLS version: TLSv1.3
```