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-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
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-ChainNo modo obrigatório/opcional:
Cloudfront-Viewer-Cert-PEM
pemCertFormatInfo Campos de:
Para Cloudfront-Viewer-Cert-PEM:
certHeadersubstitui-----BEGIN CERTIFICATE-----.certFootersubstitui-----END CERTIFICATE-----.certEndMarkerdefine uma string personalizada após o certFooter.keepNewlinesInCertData(padrão:true) preserva as novas linhas nos dados base64 quando verdadeiras.
Para e :
certHeadersubstitui:.certFootersubstitui:.certEndMarkerdefine 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.combinePemHeaderssó tem efeito no modo de passagem — nos modos obrigatório e opcional, os cabeçalhosClient-Cert-ChaineClient-Certnão estão presentes, portanto, a função é autônoma. -
Se os métodos
cf.mtls.*ecf.updateRequestOrigin()comcustomHeaderstiverem como destino o mesmo nome de cabeçalho, o CloudFront retornará um erro 502. -
No modo Passagem, o CloudFront descarta qualquer
Client-Certentrante ou cabeçalhosClient-Cert-Chaine 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.