

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
<a name="revocation-connection-function-kvs"></a>

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, lihat[Kaitkan Fungsi CloudFront Koneksi](connection-functions.md).

## Cara kerja pencabutan sertifikat dengan Fungsi Koneksi
<a name="how-revocation-works"></a>

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:

1. Simpan nomor seri sertifikat yang telah dicabut di file. CloudFront KeyValueStore

1. Ketika klien menyajikan sertifikat, Fungsi Koneksi Anda dipanggil.

1. Fungsi memeriksa nomor seri sertifikat terhadap KeyValueStore.

1. Jika nomor seri ditemukan di toko, sertifikat dicabut.

1. 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
<a name="setup-kvs-revoked-certs"></a>

Pertama, buat a KeyValueStore untuk menyimpan nomor seri sertifikat yang dicabut:

### Untuk membuat KeyValueStore (Konsol)
<a name="create-kvs-console"></a>

1. Masuk ke Konsol Manajemen AWS dan buka CloudFront konsol di[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Di panel navigasi, pilih **Key value stores**.

1. Pilih **Buat toko nilai kunci**.

1. Masukkan nama untuk penyimpanan nilai kunci Anda (misalnya, sertifikat yang dicabut).

1. (Opsional) Tambahkan deskripsi.

1. Pilih **Buat toko nilai kunci**.

### Untuk membuat KeyValueStore (AWS CLI)
<a name="create-kvs-cli"></a>

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
<a name="import-revoked-serials"></a>

Setelah membuat KeyValueStore, Anda perlu mengimpor nomor seri sertifikat yang dicabut:

### Siapkan data pencabutan
<a name="prepare-revocation-data"></a>

Buat file JSON dengan nomor seri sertifikat yang telah dicabut:

```
{
  "data": [
    {
      "key": "ABC123DEF456",
      "value": ""
    },
    {
      "key": "789XYZ012GHI",
      "value": ""
    }
  ]
}
```

### Impor dari S3
<a name="import-from-s3"></a>

1. Unggah file JSON ke bucket S3

1. 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
<a name="create-revocation-connection-function"></a>

Buat Fungsi Koneksi yang memeriksa nomor seri sertifikat terhadap KeyValueStore:

### Contoh kode Fungsi Koneksi
<a name="revocation-function-example"></a>

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)
<a name="create-revocation-function-cli"></a>

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
<a name="associate-revocation-function"></a>

Setelah membuat dan memublikasikan Fungsi Koneksi Anda, kaitkan dengan CloudFront distribusi berkemampuan MTLS seperti yang dijelaskan di bagian. [Kaitkan Fungsi CloudFront Koneksi](connection-functions.md)