View a markdown version of this page

Méthodes auxiliaires pour le protocole TLS mutuel - Amazon CloudFront

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Méthodes auxiliaires pour le protocole TLS mutuel

CloudFront fournit des fonctions d'TLS-specific assistance m dans l'espace de cf.mtls noms pour les fonctions de demande du spectateur. Ces fonctions permettent de renommer, reformater ou combiner les en-têtes des certificats clients avant de transmettre la demande à votre point d'origine.

import cf from "cloudfront";

cf.mtls.rename ClientCertHeaders

Renomme les en-têtes des métadonnées des certificats en noms d'en-tête personnalisés.

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", });

En-têtes de source autorisés :

  • 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.rename PemHeaders

Renomme les en-têtes des certificats PEM et reformate éventuellement le codage du certificat.

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 } } });

En-têtes de source autorisés :

  • En mode passthrough :Client-Cert, Client-Cert-Chain

  • En required/optional mode : Cloudfront-Viewer-Cert-PEM

pemCertFormatInfodomaines :

Pour Cloudfront-Viewer-Cert-PEM :

  • certHeader remplace -----BEGIN CERTIFICATE-----.

  • certFooter remplace -----END CERTIFICATE-----.

  • certEndMarkerdéfinit une chaîne personnalisée après le CertFooter.

  • keepNewlinesInCertData(par défaut :true) préserve les nouvelles lignes dans les données base64 lorsque c'est vrai.

Pour Client-Cert et Client-Cert-Chain :

  • certHeader remplace :.

  • certFooter remplace :.

  • certEndMarkerdéfinit une chaîne personnalisée après le CertFooter.

  • keepNewlinesInCertData(par défaut :false) préserve les nouvelles lignes dans les données base64 lorsque c'est vrai.

cf.mtls.combine PemHeaders

Combine Client-Cert et Client-Cert-Chain en un seul en-tête contenant la chaîne de certificats complète.

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

certEndMarkerdéfinit le délimiteur entre les certificats.

Note
  • Ces fonctions d'assistance peuvent être utilisées dans tous les modes mTLS (obligatoire, optionnel et direct). Cependant, cela cf.mtls.combinePemHeaders n'a d'effet qu'en mode relais : dans les modes obligatoire et facultatif, les Client-Cert-Chain en-têtes Client-Cert et ne sont pas présents, la fonction est donc inopérante.

  • Si cf.mtls.* les méthodes et cf.updateRequestOrigin() la customHeaders cible ont le même nom d'en-tête, CloudFront renvoie une erreur 502.

  • En mode Passthrough, CloudFront supprime les entrées Client-Cert ou les Client-Cert-Chain en-têtes et les ajoute à nouveau à partir du certificat client réel.

  • CloudFront ne présente le contenu brut complet du certificat PEM dans aucune fonction de périphérie.