

# Encabezados de mTLS del espectador para las políticas de caché y reenvío al origen
<a name="viewer-mtls-headers"></a>

Al utilizar la autenticación TLS mutua, CloudFront puede extraer información de los certificados de cliente y reenviarla a los orígenes como encabezados HTTP. Esto permite que los servidores de origen accedan a los detalles de los certificados sin implementar una lógica de validación de certificados.

Los siguientes encabezados están disponibles para crear comportamientos de caché:


| Nombre del encabezado | Descripción | Ejemplo de valor | 
| --- | --- | --- | 
| CloudFront-Viewer-Cert-Serial-Number | Representación hexadecimal del número de serie del certificado | 4a:3f:5c:92:d1:e8:7b:6c | 
| CloudFront-Viewer-Cert-Issuer | Representación de cadena RFC2253 del nombre distintivo (DN) del emisor | CN=rootcamtls.com,OU=rootCA,O=mTLS,L=Seattle,ST=Washington,C=US | 
| CloudFront-Viewer-Cert-Subject | Representación de cadena RFC2253 del nombre distintivo (DN) del sujeto | CN=client\$1.com,OU=client-3,O=mTLS,ST=Washington,C=US | 
| CloudFront-Viewer-Cert-Present | 1 (presente) o 0 (no presente) indican si el certificado está presente. Este valor siempre es 1 en el modo obligatorio. | 1 | 
| CloudFront-Viewer-Cert-Sha256 | El hash SHA256 del certificado del cliente | 01fbf94fef5569753420c349f49adbfd80af5275377816e3ab1fb371b29cb586 | 

Para las solicitudes de origen, se proporcionan dos encabezados adicionales, además de los encabezados anteriores disponibles para los comportamientos de la caché: Debido al posible tamaño del encabezado, el encabezado CloudFront-Viewer-Cert-Pem no se muestra a las funciones de periferia (Lambda@Edge o CloudFront Functions) y solo se reenvía al origen.


| Nombre del encabezado | Descripción | Ejemplo de valor | 
| --- | --- | --- | 
| CloudFront-Viewer-Cert-Validity | Formato ISO8601 de la fecha notBefore y notAfter | CloudFront-Viewer-Cert-Validity: NotBefore=2023-09-21T01:50:17Z;NotAfter=2024-09-20T01:50:17Z | 
| CloudFront-Viewer-Cert-Pem | Formato PEM codificado en URL del certificado de hoja | CloudFront-Viewer-Cert-Pem: -----BEGIN%20CERTIFICATE-----%0AMIIG<...reduced...>NmrUlw%0A-----END%20CERTIFICATE-----%0A | 

## Configuración del reenvío de encabezados
<a name="configure-header-forwarding"></a>

### Consola
<a name="configure-headers-console"></a>

En el modo de verificación, CloudFront agrega automáticamente los encabezados CloudFront-Viewer-Cert-\$1 a todas las solicitudes de los espectadores. Reenvío de estos encabezados al origen:

1. En la página principal de distribuciones de la lista, seleccione la distribución con el mTLS de espectador habilitado y vaya a la pestaña **Comportamientos**.

1. Seleccione el comportamiento de caché y elija **Editar**.

1. En la sección **Política de solicitudes de origen**, elija **Crear política** o seleccione una política existente.

1. Asegúrese de que los siguientes encabezados estén incluidos en la política de solicitud de origen:
   + CloudFront-Viewer-Cert-Serial-Number
   + CloudFront-Viewer-Cert-Issuer
   + CloudFront-Viewer-Cert-Subject
   + CloudFront-Viewer-Cert-Present
   + Cloudfront-Viewer-Cert-Sha256
   + CloudFront-Viewer-Cert-Validity
   + CloudFront-Viewer-Cert-Pem

1. Elija **Crear** (para políticas nuevas) o **Guardar cambios** (para políticas existentes).

1. Seleccione la política que se ajuste al comportamiento de la memoria caché y guarde los cambios.

### Uso de la CLI de AWS
<a name="configure-headers-cli"></a>

En el siguiente ejemplo se muestra cómo crear una política de solicitud de origen que incluya encabezados mTLS para el modo de verificación:

```
aws cloudfront create-origin-request-policy \
  --origin-request-policy-config '{
    "Name": "MTLSHeadersPolicy",
    "HeadersConfig": {
      "HeaderBehavior": "whitelist",
      "Headers": {
        "Quantity": 5,
        "Items": [
          "CloudFront-Viewer-Cert-Serial-Number",
          "CloudFront-Viewer-Cert-Issuer",
          "CloudFront-Viewer-Cert-Subject",
          "CloudFront-Viewer-Cert-Validity",
          "CloudFront-Viewer-Cert-Pem"
        ]
      }
    },
    "CookiesConfig": {
      "CookieBehavior": "none"
    },
    "QueryStringsConfig": {
      "QueryStringBehavior": "none"
    }
  }'
```

## Consideraciones sobre el procesamiento de encabezados
<a name="header-processing-considerations"></a>

Cuando trabaje con encabezados de certificados, tenga en cuenta estas prácticas recomendadas:
+ **Validación de encabezados:** compruebe los valores de los encabezados de los certificados en el origen como medida de seguridad adicional
+ **Límites de tamaño de los encabezados:** los encabezados de los certificados PEM pueden ser grandes, asegúrese de que el servidor de origen pueda gestionarlos
+ **Consideraciones sobre la caché:** el uso de encabezados de certificado en la clave de caché aumenta la fragmentación de la caché
+ **Solicitudes de origen cruzado:** si la aplicación usa CORS, es posible que deba configurarla para permitir los encabezados de los certificados

## Siguientes pasos
<a name="headers-next-steps"></a>

Tras configurar el reenvío de encabezados, puede implementar la comprobación de la revocación de certificados mediante funciones de conexión de CloudFront y KeyValueStore. Para obtener más información sobre la implementación de las comprobaciones de revocación, consulte [Revocación mediante la función de conexión de CloudFront y KVS](revocation-connection-function-kvs.md).