View a markdown version of this page

Métodos auxiliares para la TLS mutua - Amazon CloudFront

Métodos auxiliares para la TLS mutua

CloudFront proporciona funciones auxiliares específicas de mTLS en el espacio de nombres de cf.mtls para las funciones de solicitud de los espectadores. Estas funciones renombran, reformatean o combinan los encabezados de los certificados de cliente antes de reenviar la solicitud al origen.

import cf from "cloudfront";

cf.mtls.renameClientCertHeaders

Cambia el nombre de los encabezados de metadatos de los certificados por nombres de encabezado personalizados.

cf.mtls.renameClientCertHeaders({ "CloudFront-Viewer-Cert-Pem": "X-Client-Cert", "CloudFront-Viewer-Cert-Serial-Number": "X-Client-Cert-Serial", "CloudFront-Viewer-Cert-Issuer": "X-Client-Cert-Issuer", });

Los encabezados de origen permitidos:

  • CloudFront-Viewer-Cert-Pem

  • CloudFront-Viewer-Cert-Serial-Number

  • CloudFront-Viewer-Cert-Issuer

  • CloudFront-Viewer-Cert-Subject

  • CloudFront-Viewer-Cert-Validity

  • CloudFront-Viewer-Cert-Present

  • CloudFront-Viewer-Cert-Sha256

  • Client-Cert

  • Client-Cert-Chain

cf.mtls.renamePemHeaders

Cambia el nombre de los encabezados de los certificados PEM y, opcionalmente, reformatea la codificación del certificado.

cf.mtls.renamePemHeaders({ "Client-Cert": { "newHeaderName": "X-Leaf-Cert", "pemCertFormatInfo": { "certHeader": "-----CUSTOM HEADER-----", "certFooter": "-----CUSTOM FOOTER-----", "certEndMarker": "", "keepNewlinesInCertData": true } }, "Client-Cert-Chain": { "newHeaderName": "X-Intermediate-Certs", "pemCertFormatInfo": { "certHeader": "-----CUSTOM HEADER-----", "certFooter": "-----CUSTOM FOOTER-----", "certEndMarker": "", "keepNewlinesInCertData": true } } });

Los encabezados de origen permitidos:

  • En modo de transferencia: Client-Cert, Client-Cert-Chain

  • En modo obligatorio/opcional: Cloudfront-Viewer-Cert-PEM

pemCertFormatInfo Campos:

Para Cloudfront-Viewer-Cert-PEM:

  • certHeader sustituye a -----BEGIN CERTIFICATE-----.

  • certFooter sustituye a -----END CERTIFICATE-----.

  • certEndMarker establece una cadena personalizada después de certFooter.

  • keepNewlinesInCertData (predeterminado: true) conserva las líneas nuevas en los datos de base64 cuando son verdaderas.

Para Client-Cert y Client-Cert-Chain:

  • certHeader sustituye a :.

  • certFooter sustituye a :.

  • certEndMarker establece una cadena personalizada después de certFooter.

  • keepNewlinesInCertData (predeterminado: false) conserva las líneas nuevas en los datos de base64 cuando son verdaderas.

cf.mtls.combinePemHeaders

Combina Client-Cert y Client-Cert-Chain en un solo encabezado que contiene la cadena de certificados completa.

cf.mtls.combinePemHeaders({ "newHeaderName": "X-Full-Chain", "pemCertFormatInfo": { "certHeader": "-----BEGIN CERTIFICATE-----", "certFooter": "-----END CERTIFICATE-----", "certEndMarker": "\n", "keepNewlinesInCertData": false } });

certEndMarker establece el delimitador entre los certificados.

nota
  • Estas funciones auxiliares se pueden utilizar en todos los modos mTLS (obligatorio, opcional y de acceso directo). Sin embargo, cf.mtls.combinePemHeaders solo tiene efecto en el modo de acceso directo: en los modos obligatorio y opcional, los encabezados Client-Cert y Client-Cert-Chain no están presentes, por lo que la función no es operativa.

  • Si los métodos cf.mtls.* y cf.updateRequestOrigin() con el destino customHeaders tienen el mismo nombre de encabezado, CloudFront devuelve un error 502.

  • En el modo de acceso directo, CloudFront elimina los encabezados Client-Cert o Client-Cert-Chain entrantes y los vuelve a agregar desde el certificado de cliente real.

  • CloudFront no presenta el contenido completo del certificado PEM sin procesar en ninguna función de periferia.