

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
<a name="mtls-helper-methods"></a>

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`
<a name="mtls-rename-client-cert-headers"></a>

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`
<a name="mtls-rename-pem-headers"></a>

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`

**`pemCertFormatInfo`Felder:**

Für `Cloudfront-Viewer-Cert-PEM`:
+ `certHeader` ersetzt `-----BEGIN CERTIFICATE-----`.
+ `certFooter` ersetzt `-----END CERTIFICATE-----`.
+ `certEndMarker`legt 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 `:`.
+ `certEndMarker`legt 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`
<a name="mtls-combine-pem-headers"></a>

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

`certEndMarker`legt 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.