

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

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

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

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`

**`pemCertFormatInfo`domaines :**

Pour `Cloudfront-Viewer-Cert-PEM` :
+ `certHeader` remplace `-----BEGIN CERTIFICATE-----`.
+ `certFooter` remplace `-----END CERTIFICATE-----`.
+ `certEndMarker`dé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 `:`.
+ `certEndMarker`dé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`
<a name="mtls-combine-pem-headers"></a>

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

`certEndMarker`dé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.