View a markdown version of this page

Metode pembantu untuk TLS timbal balik - Amazon CloudFront

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

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

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

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

pemCertFormatInfobidang:

Untuk Cloudfront-Viewer-Cert-PEM:

  • certHeadermenggantikan-----BEGIN CERTIFICATE-----.

  • certFootermenggantikan-----END CERTIFICATE-----.

  • certEndMarkermenetapkan string kustom setelah CertFooter.

  • keepNewlinesInCertData(default:true) mempertahankan baris baru dalam data base64 saat benar.

Untuk Client-Cert danClient-Cert-Chain:

  • certHeadermenggantikan:.

  • certFootermenggantikan:.

  • certEndMarkermenetapkan string kustom setelah CertFooter.

  • keepNewlinesInCertData(default:false) mempertahankan baris baru dalam data base64 saat benar.

cf.mtls.combine PemHeaders

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

certEndMarkermenetapkan 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.