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-PemCloudFront-Viewer-Cert-Serial-NumberCloudFront-Viewer-Cert-IssuerCloudFront-Viewer-Cert-SubjectCloudFront-Viewer-Cert-ValidityCloudFront-Viewer-Cert-PresentCloudFront-Viewer-Cert-Sha256Client-CertClient-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-ChainEn modo obligatorio/opcional:
Cloudfront-Viewer-Cert-PEM
pemCertFormatInfo Campos:
Para Cloudfront-Viewer-Cert-PEM:
certHeadersustituye a-----BEGIN CERTIFICATE-----.certFootersustituye a-----END CERTIFICATE-----.certEndMarkerestablece 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:
certHeadersustituye a:.certFootersustituye a:.certEndMarkerestablece 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.combinePemHeaderssolo tiene efecto en el modo de acceso directo: en los modos obligatorio y opcional, los encabezadosClient-CertyClient-Cert-Chainno están presentes, por lo que la función no es operativa. -
Si los métodos
cf.mtls.*ycf.updateRequestOrigin()con el destinocustomHeaderstienen el mismo nombre de encabezado, CloudFront devuelve un error 502. -
En el modo de acceso directo, CloudFront elimina los encabezados
Client-CertoClient-Cert-Chainentrantes 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.