View a markdown version of this page

Métodos auxiliares para TLS mútuo - Amazon CloudFront

Métodos auxiliares para TLS mútuo

O CloudFront fornece funções auxiliares específicas de mTLS no namespace cf.mtls para funções de solicitação do visualizador. Essas funções renomeiam, reformatam ou combinam os cabeçalhos do certificado do cliente antes de encaminhar a solicitação para a sua origem.

import cf from "cloudfront";

cf.mtls.renameClientCertHeaders

Renomeia os cabeçalhos de metadados do certificado para nomes de cabeçalhos 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", });

Cabeçalhos de origem 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

Renomeia os cabeçalhos do certificado PEM e, opcionalmente, reformata a codificação do 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 } } });

Cabeçalhos de origem permitidos:

  • No modo de passagem:Client-Cert, Client-Cert-Chain

  • No modo obrigatório/opcional: Cloudfront-Viewer-Cert-PEM

pemCertFormatInfo Campos de:

Para Cloudfront-Viewer-Cert-PEM:

  • certHeader substitui -----BEGIN CERTIFICATE-----.

  • certFooter substitui -----END CERTIFICATE-----.

  • certEndMarker define uma string personalizada após o certFooter.

  • keepNewlinesInCertData (padrão:true) preserva as novas linhas nos dados base64 quando verdadeiras.

Para e :

  • certHeader substitui :.

  • certFooter substitui :.

  • certEndMarker define uma string personalizada após o certFooter.

  • keepNewlinesInCertData (padrão:false) preserva as novas linhas nos dados base64 quando verdadeiras.

cf.mtls.combinePemHeaders

Combina Client-Cert e Client-Cert-Chain em um único cabeçalho contendo toda a cadeia de certificados.

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

certEndMarker define o delimitador entre os certificados.

nota
  • Essas funções auxiliares podem ser usadas em todos os modos mTLS (obrigatório, opcional e de passagem). No entanto, cf.mtls.combinePemHeaders só tem efeito no modo de passagem — nos modos obrigatório e opcional, os cabeçalhos Client-Cert-Chain e Client-Cert não estão presentes, portanto, a função é autônoma.

  • Se os métodos cf.mtls.* e cf.updateRequestOrigin() com customHeaders tiverem como destino o mesmo nome de cabeçalho, o CloudFront retornará um erro 502.

  • No modo Passagem, o CloudFront descarta qualquer Client-Cert entrante ou cabeçalhos Client-Cert-Chain e os adiciona novamente a partir do certificado real do cliente.

  • O CloudFront não apresenta todo o conteúdo bruto do certificado PEM em nenhuma função de borda.