Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pencabutan menggunakan Fungsi CloudFront Koneksi dan KVS
Anda dapat menerapkan pemeriksaan pencabutan sertifikat untuk otentikasi TLS timbal balik dengan menggabungkan CloudFront Fungsi Koneksi dengan. KeyValueStore Pendekatan ini menyediakan mekanisme pencabutan sertifikat real-time yang dapat diskalakan yang melengkapi validasi sertifikat bawaan CloudFront.
Fungsi Koneksi adalah JavaScript fungsi yang berjalan selama pembentukan koneksi TLS di lokasi CloudFront tepi dan memungkinkan Anda menerapkan logika validasi sertifikat khusus untuk otentikasi mTLS. Untuk informasi rinci tentang Fungsi Koneksi, lihatKaitkan Fungsi CloudFront Koneksi.
Cara kerja pencabutan sertifikat dengan Fungsi Koneksi
CloudFrontvalidasi sertifikat standar memverifikasi rantai sertifikat, tanda tangan, dan kedaluwarsa tetapi tidak termasuk pemeriksaan pencabutan sertifikat bawaan. Dengan menggunakan Fungsi Koneksi, Anda dapat menerapkan pemeriksaan pencabutan kustom selama jabat tangan TLS.
Proses pencabutan sertifikat berfungsi sebagai berikut:
-
Simpan nomor seri sertifikat yang telah dicabut di file. CloudFront KeyValueStore
-
Ketika klien menyajikan sertifikat, Fungsi Koneksi Anda dipanggil.
-
Fungsi memeriksa nomor seri sertifikat terhadap KeyValueStore.
-
Jika nomor seri ditemukan di toko, sertifikat dicabut.
-
Fungsi Anda menolak koneksi untuk sertifikat yang dicabut.
Pendekatan ini menyediakan pemeriksaan near-real-time pencabutan di seluruh jaringan CloudFront edge global.
Siapkan KeyValueStore untuk sertifikat yang dicabut
Pertama, buat a KeyValueStore untuk menyimpan nomor seri sertifikat yang dicabut:
Untuk membuat KeyValueStore (Konsol)
Masuk ke Konsol Manajemen AWS dan buka CloudFront konsol dihttps://console.aws.amazon.com/cloudfront/v4/home
. -
Di panel navigasi, pilih Key value stores.
-
Pilih Buat toko nilai kunci.
-
Masukkan nama untuk penyimpanan nilai kunci Anda (misalnya, sertifikat yang dicabut).
-
(Opsional) Tambahkan deskripsi.
-
Pilih Buat toko nilai kunci.
Untuk membuat KeyValueStore (AWS CLI)
Contoh berikut menunjukkan cara membuat KeyValueStore:
aws cloudfront create-key-value-store \ --name "revoked-certificates" \ --comment "Store for revoked certificate serial numbers"
Impor nomor seri sertifikat yang dicabut
Setelah membuat KeyValueStore, Anda perlu mengimpor nomor seri sertifikat yang dicabut:
Siapkan data pencabutan
Buat file JSON dengan nomor seri sertifikat yang telah dicabut:
{ "data": [ { "key": "ABC123DEF456", "value": "" }, { "key": "789XYZ012GHI", "value": "" } ] }
Impor dari S3
-
Unggah file JSON ke bucket S3
-
Impor file ke KeyValueStore:
aws cloudfront create-key-value-store \ --name "revoked-certificates" \ --import-source '{ "SourceType": "S3", "SourceARN": "arn:aws:s3:::amzn-s3-demo-bucket1/revoked-serials.json" }'
Buat Fungsi Koneksi untuk pemeriksaan pencabutan
Buat Fungsi Koneksi yang memeriksa nomor seri sertifikat terhadap KeyValueStore:
Contoh kode Fungsi Koneksi
Contoh berikut menunjukkan Fungsi Koneksi yang melakukan pemeriksaan pencabutan sertifikat:
import cf from 'cloudfront'; async function connectionHandler(connection) { const kvsHandle = cf.kvs(); // Get client certificate serial number const clientSerialNumber = connection.clientCertificate.certificates.leaf.serialNumber; // Check if the serial number exists in the KeyValueStore const isRevoked = await kvsHandle.exists(clientSerialNumber.replaceAll(':', '')); if (isRevoked) { console.log(`Certificate ${clientSerialNumber} is revoked. Denying connection.`); connection.logCustomData(`REVOKED:${clientSerialNumber}`); connection.deny(); } else { console.log(`Certificate ${clientSerialNumber} is valid. Allowing connection.`); connection.allow(); } }
Untuk membuat Fungsi Koneksi (AWS CLI)
Contoh berikut menunjukkan cara membuat Fungsi Koneksi dengan KeyValueStore asosiasi:
aws cloudfront create-connection-function \ --name "revocation-checker" \ --connection-function-config '{ "Comment": "Certificate revocation checking function", "Runtime": "cloudfront-js-2.0", "KeyValueStoreAssociations": { "Quantity": 1, "Items": [ { "KeyValueStoreARN": "arn:aws:cloudfront::123456789012:key-value-store/revoked-certificates" } ] } }' \ --connection-function-code fileb://revocation-checker.js
Kaitkan fungsi dengan distribusi Anda
Setelah membuat dan memublikasikan Fungsi Koneksi Anda, kaitkan dengan CloudFront distribusi berkemampuan MTLS seperti yang dijelaskan di bagian. Kaitkan Fungsi CloudFront Koneksi