

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Metode pembantu untuk TLS timbal balik
<a name="mtls-helper-methods"></a>

CloudFront menyediakan fungsi m TLS-specific helper di `cf.mtls` namespace untuk fungsi permintaan penampil. Fungsi-fungsi ini mengganti nama, memformat ulang, atau menggabungkan header sertifikat klien sebelum meneruskan permintaan ke asal Anda.

```
import cf from "cloudfront";
```

## `cf.mtls.ganti nama ClientCertHeaders`
<a name="mtls-rename-client-cert-headers"></a>

Mengganti nama header metadata sertifikat menjadi nama header khusus.

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

Header sumber yang diizinkan:
+ `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.ganti nama PemHeaders`
<a name="mtls-rename-pem-headers"></a>

Mengganti nama header sertifikat PEM dan secara opsional memformat ulang pengkodean sertifikat.

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

Header sumber yang diizinkan:
+ Dalam mode passthrough:`Client-Cert`, `Client-Cert-Chain`
+ Dalam required/optional mode: `Cloudfront-Viewer-Cert-PEM`

**`pemCertFormatInfo`bidang:**

Untuk `Cloudfront-Viewer-Cert-PEM`:
+ `certHeader`menggantikan`-----BEGIN CERTIFICATE-----`.
+ `certFooter`menggantikan`-----END CERTIFICATE-----`.
+ `certEndMarker`menetapkan string kustom setelah CertFooter.
+ `keepNewlinesInCertData`(default:`true`) mempertahankan baris baru dalam data base64 saat benar.

Untuk `Client-Cert` dan`Client-Cert-Chain`:
+ `certHeader`menggantikan`:`.
+ `certFooter`menggantikan`:`.
+ `certEndMarker`menetapkan string kustom setelah CertFooter.
+ `keepNewlinesInCertData`(default:`false`) mempertahankan baris baru dalam data base64 saat benar.

## `cf.mtls.combine PemHeaders`
<a name="mtls-combine-pem-headers"></a>

Menggabungkan `Client-Cert` dan `Client-Cert-Chain` menjadi satu header yang berisi rantai sertifikat lengkap.

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

`certEndMarker`menetapkan pembatas antara sertifikat.

**catatan**  
Fungsi pembantu ini dapat digunakan di semua mode mTLS (wajib, opsional, dan passthrough). Namun, `cf.mtls.combinePemHeaders` hanya berpengaruh dalam mode passthrough — dalam mode wajib dan opsional, `Client-Cert-Chain` header `Client-Cert` dan tidak ada, jadi fungsinya adalah no-op.
Jika `cf.mtls.*` metode dan `cf.updateRequestOrigin()` dengan `customHeaders` target nama header yang sama, CloudFront mengembalikan kesalahan 502.
Dalam mode Passthrough, CloudFront jatuhkan semua yang masuk `Client-Cert` atau `Client-Cert-Chain` header dan tambahkan kembali dari sertifikat klien yang sebenarnya.
CloudFront tidak menyajikan konten sertifikat PEM mentah lengkap dalam fungsi tepi apa pun.