View a markdown version of this page

Hilfsmethoden für gegenseitiges TLS - Amazon CloudFront

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Hilfsmethoden für gegenseitiges TLS

CloudFront stellt m TLS-specific Hilfsfunktionen im cf.mtls Namespace für Viewer-Anforderungsfunktionen bereit. Diese Funktionen benennen die Header von Client-Zertifikaten um, formatieren sie neu oder kombinieren sie, bevor sie die Anfrage an Ihren Ursprung weiterleiten.

import cf from "cloudfront";

cf.mtls.rename ClientCertHeaders

Benennt die Header der Zertifikatsmetadaten in benutzerdefinierte Header-Namen um.

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

Zulässige Quell-Header:

  • 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

Benennt die PEM-Zertifikatsheader um und formatiert optional die Zertifikatskodierung neu.

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

Zulässige Quell-Header:

  • Im Passthrough-Modus:, Client-Cert Client-Cert-Chain

  • Im required/optional Modus: Cloudfront-Viewer-Cert-PEM

pemCertFormatInfoFelder:

Für Cloudfront-Viewer-Cert-PEM:

  • certHeader ersetzt -----BEGIN CERTIFICATE-----.

  • certFooter ersetzt -----END CERTIFICATE-----.

  • certEndMarkerlegt nach dem CertFooter eine benutzerdefinierte Zeichenfolge fest.

  • keepNewlinesInCertData(Standard:true) behält Zeilenumbrüche in Base64-Daten bei, wenn der Wert wahr ist.

Für Client-Cert und Client-Cert-Chain:

  • certHeader ersetzt :.

  • certFooter ersetzt :.

  • certEndMarkerlegt nach dem CertFooter eine benutzerdefinierte Zeichenfolge fest.

  • keepNewlinesInCertData(Standard:false) behält Zeilenumbrüche in Base64-Daten bei, wenn der Wert wahr ist.

cf.mtls.combine PemHeaders

Kombiniert Client-Cert und Client-Cert-Chain zu einem einzigen Header, der die gesamte Zertifikatskette enthält.

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

certEndMarkerlegt das Trennzeichen zwischen Zertifikaten fest.

Anmerkung
  • Diese Hilfsfunktionen können in allen mTLS-Modi (erforderlich, optional und Passthrough) verwendet werden. Hat jedoch cf.mtls.combinePemHeaders nur im Passthrough-Modus eine Wirkung — im erforderlichen und optionalen Modus sind die Client-Cert-Chain Header Client-Cert und nicht vorhanden, sodass die Funktion nicht verfügbar ist.

  • Wenn die cf.mtls.* Methoden und cf.updateRequestOrigin() das customHeaders Ziel denselben Header-Namen haben, wird ein CloudFront 502-Fehler zurückgegeben.

  • Löscht im Passthrough-Modus alle CloudFront eingehenden Header Client-Cert oder Client-Cert-Chain Header und fügt sie erneut aus dem eigentlichen Client-Zertifikat hinzu.

  • CloudFront präsentiert in keiner Edge-Funktion den vollständigen Inhalt des PEM-Rohzertifikats.