> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/ecom/es/integre-la-api-de-d1/configure-tls-mutuo-mtls.md).

# Configure TLS mutuo (mTLS)

La API D1 requiere TLS mutuo (mTLS). Esto se aplica a las llamadas API entrantes y salientes.

Configura mTLS antes de comenzar a integrar D1 eCom Enablement.

Te integras como un gateway de comerciante. Thales te proporciona un `merchantGatewayId`.

Los entornos D1 están aislados. Configura la conectividad por separado para PreProd y Producción.

### Flujo entrante: tu host hacia Thales D1

<figure><img src="/files/c25038b51073b1fb6639db54516ec31c5656d046" alt="mTLS inbound flow from your host to Thales D1"><figcaption><p>flujo mTLS entrante</p></figcaption></figure>

Requisitos generales:

1. Autenticación mutua
2. TLS 1.2 o 1.3
3. A través de internet (sin lista de permitidos por IP)
4. El certificado del servidor de Thales está firmado por la CA de AWS: <https://www.amazontrust.com/repository/>
5. Tu certificado de cliente está firmado por la CA de Thales

#### Certificados de cliente

Para acceder a la API D1, necesitas un certificado de cliente firmado por la CA de Thales. Envía una solicitud de firma de certificado (CSR) a tu representante de Thales.

Requisitos generales:

1. Algoritmo: cifrado RSA con claves de 4096 bits o ECDSA P-256 y hashing SHA256.
2. Nombre común (CN): el formato y valor son aplicados y verificados por Thales. El valor debe seguir el patrón descrito en el paso 2 del ejemplo más abajo.

#### Ejemplo de generación de CSR

Repite el procedimiento para cada entorno (PreProd y Producción).

1. Genera un nuevo par de claves para tu CSR ya sea RSA o ECDSA.

Puedes crear un par de claves RSA 4096 con el siguiente comando OpenSSL:

```bash
openssl req -new -newkey rsa:4096 -nodes -keyout private_rsa.key -out customer_pp.csr -subj "/C=<Country>/ST=<State>/L=<Locality>/O=<Customer Organization>/OU=<Customer Organization Unit>/CN=TLSMA-RSA\/<merchantGatewayId>\/D1.<env>"
```

Puedes crear un par de claves ECDSA P-256 con los siguientes comandos OpenSSL:

```bash
openssl ecparam -name prime256v1 -genkey -noout -out d1-mtls-client-cert.key
openssl req -new -key d1-mtls-client-cert.key -out d1-mtls-client-cert.csr -subj "/C=<country>/ST=<state>/L=<locality>/O=<Customer Organization>/OU=<Customer Organization Unit>/CN=TLSMA-ECDSA\/<merchantGatewayId>\/D1.<env>"
```

2. Detalles para el certificado de cliente mTLS.

donde:

* *country* es tu país.
* *state* es tu estado.
* *locality* es tu localidad.
* *Organization Name* es el nombre de tu organización.
* *Organizational Unit* es tu unidad organizativa.
* *CN* significa Nombre Común.
* *merchantGatewayId* es el ID proporcionado por Thales.
* *env* es el entorno al que va dirigido este certificado. Para preproducción: `PPR`, para producción: `PRD`
* *ECDSA vs RSA* en CN depende del tipo de clave.

{% hint style="info" %}
Tu backend debe siempre resolver el nombre de dominio D1 y los subdominios mediante DNS. Thales D1 no proporciona direcciones IP estáticas. No codifiques ni caches las IPs de D1 más allá del TTL del DNS.
{% endhint %}

### Flujo saliente: Thales D1 hacia tu host

<figure><img src="/files/a9386c9bb6c1b35587de54e88571811af6821c4c" alt="mTLS outbound flow from Thales D1 to your host"><figcaption><p>flujo mTLS saliente</p></figcaption></figure>

Requisitos generales:

1. Autenticación mutua
2. TLS 1.2, 1.3
3. Tu servidor debe escuchar en el puerto 443 (o 8443, pero se prefiere 443)
4. A través de internet (sin listas blancas de IP)
5. Debes confiar en la CA de Cliente de Thales para autenticar el certificado de cliente mTLS presentado por D1. La CA de Cliente de Thales se comparte durante la incorporación.
6. Thales D1 debe confiar en el certificado de tu servidor. Proporciona tu cadena de CA del servidor durante la incorporación.

{% hint style="info" %}
Thales espera un certificado TLS emitido por una CA reconocida por Mozilla. Si tu endpoint depende de una CA privada, proporciona un almacén de confianza en formato PEM al equipo de entrega de Thales. Notifica a Thales antes de cualquier cambio de CA.
{% endhint %}

{% hint style="info" %}
Debes respaldar únicamente la CA de Cliente de Thales, y no debes "fijar" (pin) el certificado de cliente de Thales. El certificado de cliente de Thales está firmado por la CA de Cliente de Thales. D1 puede rotar su certificado de cliente en cualquier momento antes de su fecha de expiración sin previo aviso.
{% endhint %}

### Preguntas frecuentes

#### ¿Puedo usar un certificado de cliente RSA 2048?

No, no es posible.

#### ¿Puedo conectarme sin mTLS?

No, no es posible.

#### ¿Se admite VPN?

Thales no admite VPN para la conectividad entrante o saliente. Usa mTLS a través de internet. También se requiere OAuth 2.0.

#### ¿Cuál es el período de validez del certificado de cliente?

El certificado de cliente emitido para la conectividad del backend de Thales está firmado por Thales Business PKI y tiene un período de validez de 5 años.

#### ¿Cuál es el proceso de renovación del certificado de cliente?

Durante el proceso de renovación, el cliente genera una nueva Solicitud de Firma de Certificado (CSR) usando la política de Nombre Distinguido (DN) especificada en esta página. Esta CSR será entonces firmada por Thales Business PKI.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.payments.thalescloud.io/ecom/es/integre-la-api-de-d1/configure-tls-mutuo-mtls.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
