Merencanakan daftar pencabutan sertifikat (CRL) - AWS Private Certificate Authority

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

Merencanakan daftar pencabutan sertifikat (CRL)

Sebelum Anda dapat mengonfigurasi CRL sebagai bagian dari proses pembuatan CA, beberapa pengaturan sebelumnya mungkin diperlukan. Bagian ini menjelaskan prasyarat dan opsi yang harus Anda pahami sebelum membuat CA dengan CRL terlampir.

Untuk informasi tentang menggunakan Online Certificate Status Protocol (OCSP) sebagai alternatif atau suplemen CRL, lihat Opsi pencabutan sertifikat dan. Mengkonfigurasi URL Kustom untuk AWS Private CA OCSP

Struktur CRL

Setiap CRL adalah file DER yang dikodekan. Untuk mengunduh file dan menggunakan OpenSSL untuk melihatnya, gunakan perintah yang mirip dengan berikut ini:

openssl crl -inform DER -in path-to-crl-file -text -noout

CRL memiliki format sebagai berikut:

Certificate Revocation List (CRL): Version 2 (0x1) Signature Algorithm: sha256WithRSAEncryption Issuer: /C=US/ST=WA/L=Seattle/O=Example Company CA/OU=Corporate/CN=www.example.com Last Update: Feb 26 19:28:25 2018 GMT Next Update: Feb 26 20:28:25 2019 GMT CRL extensions: X509v3 Authority Key Identifier: keyid:AA:6E:C1:8A:EC:2F:8F:21:BC:BE:80:3D:C5:65:93:79:99:E7:71:65 X509v3 CRL Number: 1519676905984 Revoked Certificates: Serial Number: E8CBD2BEDB122329F97706BCFEC990F8 Revocation Date: Feb 26 20:00:36 2018 GMT CRL entry extensions: X509v3 CRL Reason Code: Key Compromise Serial Number: F7D7A3FD88B82C6776483467BBF0B38C Revocation Date: Jan 30 21:21:31 2018 GMT CRL entry extensions: X509v3 CRL Reason Code: Key Compromise Signature Algorithm: sha256WithRSAEncryption 82:9a:40:76:86:a5:f5:4e:1e:43:e2:ea:83:ac:89:07:49:bf: c2:fd:45:7d:15:d0:76:fe:64:ce:7b:3d:bb:4c:a0:6c:4b:4f: 9e:1d:27:f8:69:5e:d1:93:5b:95:da:78:50:6d:a8:59:bb:6f: 49:9b:04:fa:38:f2:fc:4c:0d:97:ac:02:51:26:7d:3e:fe:a6: c6:83:34:b4:84:0b:5d:b1:c4:25:2f:66:0a:2e:30:f6:52:88: e8:d2:05:78:84:09:01:e8:9d:c2:9e:b5:83:bd:8a:3a:e4:94: 62:ed:92:e0:be:ea:d2:59:5b:c7:c3:61:35:dc:a9:98:9d:80: 1c:2a:f7:23:9b:fe:ad:6f:16:7e:22:09:9a:79:8f:44:69:89: 2a:78:ae:92:a4:32:46:8d:76:ee:68:25:63:5c:bd:41:a5:5a: 57:18:d7:71:35:85:5c:cd:20:28:c6:d5:59:88:47:c9:36:44: 53:55:28:4d:6b:f8:6a:00:eb:b4:62:de:15:56:c8:9c:45:d7: 83:83:07:21:84:b4:eb:0b:23:f2:61:dd:95:03:02:df:0d:0f: 97:32:e0:9d:38:de:7c:15:e4:36:66:7a:18:da:ce:a3:34:94: 58:a6:5d:5c:04:90:35:f1:8b:55:a9:3c:dd:72:a2:d7:5f:73: 5a:2c:88:85
catatan

CRL hanya akan disimpan di Amazon S3 setelah sertifikat dikeluarkan yang merujuknya. Sebelum itu, hanya akan ada file acm-pca-permission-test-key yang terlihat di bucket Amazon S3.

Kebijakan akses untuk CRL di Amazon S3

Jika Anda berencana membuat CRL, Anda perlu menyiapkan ember Amazon S3 untuk menyimpannya. AWS Private CA secara otomatis menyetor CRL di bucket Amazon S3 yang Anda tunjuk dan memperbaruinya secara berkala. Untuk informasi selengkapnya, lihat Membuat bucket.

Bucket S3 Anda harus diamankan dengan kebijakan izin IAM terlampir. Pengguna resmi dan kepala layanan memerlukan Put izin AWS Private CA untuk mengizinkan menempatkan objek di ember, dan Get izin untuk mengambilnya. Selama prosedur konsol untuk membuat CA, Anda dapat memilih untuk mengizinkan AWS Private CA membuat bucket baru dan menerapkan kebijakan izin default.

catatan

Konfigurasi kebijakan IAM tergantung pada yang Wilayah AWS terlibat. Wilayah terbagi dalam dua kategori:

  • Default-enabled Regions — Wilayah yang diaktifkan secara default untuk semua. Akun AWS

  • Wilayah yang dinonaktifkan default — Wilayah yang dinonaktifkan secara default, tetapi dapat diaktifkan secara manual oleh pelanggan.

Untuk informasi selengkapnya dan daftar Wilayah yang dinonaktifkan default, lihat Mengelola. Wilayah AWS Untuk diskusi tentang prinsip-prinsip layanan dalam konteks IAM, lihat prinsip AWS layanan di Wilayah opt-in.

Saat Anda mengonfigurasi CRL sebagai metode pencabutan sertifikat, AWS Private CA buat CRL dan publikasikan ke bucket S3. Bucket S3 memerlukan kebijakan IAM yang memungkinkan kepala AWS Private CA layanan untuk menulis ke bucket. Nama kepala layanan bervariasi sesuai dengan Wilayah yang digunakan, dan tidak semua kemungkinan didukung.

PCA S3 Pemimpin layanan

Keduanya di wilayah yang sama

acm-pca.amazonaws.com

Diaktifkan

Diaktifkan

acm-pca.amazonaws.com

Dinonaktifkan Diaktifkan

acm-pca.Region.amazonaws.com

Diaktifkan Dinonaktifkan

Tidak didukung

Kebijakan default tidak berlaku SourceArn pembatasan pada CA. Kami menyarankan Anda secara manual menerapkan kebijakan yang kurang permisif yang ditunjukkan di bawah ini, yang membatasi akses ke AWS akun tertentu dan CA pribadi tertentu. Untuk informasi selengkapnya, lihat Menambahkan kebijakan bucket menggunakan konsol Amazon S3.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"acm-pca.amazonaws.com" }, "Action":[ "s3:PutObject", "s3:PutObjectAcl", "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition":{ "StringEquals":{ "aws:SourceAccount":"account", "aws:SourceArn":"arn:partition:acm-pca:region:account:certificate-authority/CA_ID" } } } ] }

Jika Anda memilih untuk mengizinkan kebijakan default, Anda selalu dapat memodifikasinya nanti.

Mengaktifkan S3 Block Public Access (BPA) dengan CloudFront

Bucket Amazon S3 yang baru dikonfigurasi secara default dengan fitur Blokir Akses Publik (BPA) yang aktif. Termasuk dalam praktik terbaik keamanan Amazon S3, BPA adalah seperangkat kontrol akses yang dapat digunakan pelanggan untuk menyempurnakan akses ke objek di bucket S3 mereka dan ke ember secara keseluruhan. Ketika BPA aktif dan dikonfigurasi dengan benar, hanya AWS pengguna yang berwenang dan diautentikasi yang memiliki akses ke ember dan isinya.

AWS merekomendasikan penggunaan BPA pada semua bucket S3 untuk menghindari paparan informasi sensitif terhadap musuh potensial. Namun, perencanaan tambahan diperlukan jika klien PKI Anda mengambil CRL di internet publik (yaitu, saat tidak masuk ke akun AWS ). Bagian ini menjelaskan cara mengonfigurasi solusi PKI pribadi menggunakan Amazon CloudFront, jaringan pengiriman konten (CDN), untuk melayani CRL tanpa memerlukan akses klien yang diautentikasi ke bucket S3.

catatan

Menggunakan CloudFront menimbulkan biaya tambahan pada akun Anda AWS . Untuk informasi selengkapnya, lihat CloudFront Harga Amazon.

Jika Anda memilih untuk menyimpan CRL Anda di bucket S3 dengan BPA diaktifkan, dan Anda tidak menggunakannya CloudFront, Anda harus membangun solusi CDN lain untuk memastikan bahwa klien PKI Anda memiliki akses ke CRL Anda.

Siapkan Amazon S3 dengan BPA

Dalam S3, membuat bucket baru untuk CRL Anda, seperti biasa, lalu aktifkan BPA di sana.

Untuk mengonfigurasi bucket Amazon S3 yang memblokir akses publik ke CRL Anda
  1. Buat bucket S3 baru menggunakan prosedur di Membuat bucket. Selama prosedur, pilih opsi Blokir semua akses publik.

    Untuk informasi lebih lanjut, lihat Memblokir akses publik ke penyimpanan Amazon S3 Anda.

  2. Saat bucket telah dibuat, pilih namanya dari daftar, navigasikan ke tab Izin, pilih Edit di bagian Kepemilikan objek, dan pilih Pemilik bucket yang disukai.

  3. Juga pada tab Izin, tambahkan kebijakan IAM ke bucket seperti yang dijelaskan dalam. Kebijakan akses untuk CRL di Amazon S3

Siapkan CloudFront untuk BPA

Buat CloudFront distribusi yang akan memiliki akses ke bucket S3 pribadi Anda, dan dapat melayani CRL ke klien yang tidak diautentikasi.

Untuk mengkonfigurasi CloudFront distribusi untuk CRL
  1. Buat CloudFront distribusi baru menggunakan prosedur dalam Membuat Distribusi di Panduan CloudFront Pengembang Amazon.

    Saat menyelesaikan prosedur, terapkan pengaturan berikut:

    • Di Nama Domain Asal, pilih bucket S3 Anda.

    • Pilih Ya untuk Batasi Akses Bucket.

    • Pilih Buat Identitas Baru untuk Identitas Akses Asal.

    • Pilih Ya, Perbarui Kebijakan Bucket di bawah Berikan Izin Baca pada Bucket.

      catatan

      Dalam prosedur ini, CloudFront ubah kebijakan bucket Anda agar dapat mengakses objek bucket. Pertimbangkan mengedit kebijakan ini untuk hanya mengizinkan akses ke objek di bawah folder crl.

  2. Setelah distribusi diinisialisasi, cari nama domainnya di CloudFront konsol dan simpan untuk prosedur selanjutnya.

    catatan

    Jika bucket S3 Anda baru dibuat di Wilayah selain us-east-1, Anda mungkin mendapatkan kesalahan pengalihan sementara HTTP 307 saat mengakses aplikasi yang dipublikasikan melalui. CloudFront Mungkin perlu beberapa jam agar alamat ember menyebar.

Siapkan CA Anda untuk BPA

Saat mengonfigurasi CA baru Anda, sertakan alias ke distribusi Anda CloudFront.

Untuk mengonfigurasi CA Anda dengan CNAME untuk CloudFront
  • Buat CA Anda menggunakan Prosedur untuk membuat CA (CLI) .

    Saat Anda melakukan prosedur, file pencabutan revoke_config.txt harus menyertakan baris berikut untuk menentukan objek CRL non-publik dan untuk memberikan URL ke titik akhir distribusi di: CloudFront

    "S3ObjectAcl":"BUCKET_OWNER_FULL_CONTROL", "CustomCname":"abcdef012345.cloudfront.net"

    Setelah itu, ketika Anda mengeluarkan sertifikat dengan CA ini, sertifikat tersebut akan berisi blok seperti berikut:

    X509v3 CRL Distribution Points: Full Name: URI:http://abcdef012345.cloudfront.net/crl/01234567-89ab-cdef-0123-456789abcdef.crl
catatan

Jika Anda memiliki sertifikat yang lebih lama yang diterbitkan oleh CA ini, sertifikat tersebut akan dapat mengakses CRL.

Mengenkripsi CRL Anda

Anda dapat mengonfigurasi enkripsi secara opsional pada bucket Amazon S3 yang berisi CRL Anda. AWS Private CA mendukung dua mode enkripsi untuk aset di Amazon S3:

  • Enkripsi sisi server otomatis dengan kunci AES-256 terkelola Amazon S3.

  • Enkripsi terkelola pelanggan menggunakan AWS Key Management Service dan AWS KMS key dikonfigurasi dengan spesifikasi Anda.

catatan

AWS Private CA tidak mendukung penggunaan kunci KMS default yang dihasilkan secara otomatis oleh S3.

Prosedur berikut menjelaskan cara menyiapkan setiap opsi enkripsi.

Untuk mengkonfigurasi enkripsi otomatis

Selesaikan langkah-langkah berikut untuk mengaktifkan enkripsi sisi server S3.

  1. Buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di tabel Bucket, pilih ember yang akan menampung AWS Private CA aset Anda.

  3. Pada halaman untuk bucket Anda, pilih tab Properti.

  4. Pilih kartu Enkripsi default.

  5. Pilih Aktifkan.

  6. Pilih Kunci Amazon S3 (SSE-S3).

  7. Pilih Simpan Perubahan.

Untuk mengkonfigurasi enkripsi kustom

Selesaikan langkah-langkah berikut untuk mengaktifkan enkripsi menggunakan kunci kustom.

  1. Buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di tabel Bucket, pilih ember yang akan menampung AWS Private CA aset Anda.

  3. Pada halaman untuk bucket Anda, pilih tab Properti.

  4. Pilih kartu Enkripsi default.

  5. Pilih Aktifkan.

  6. Pilih AWS Key Management Service kunci (SSE-KMS).

  7. Pilih salah satu Pilih dari AWS KMS kunci Anda atau Masukkan AWS KMS key ARN.

  8. Pilih Simpan Perubahan.

  9. (Opsional) Jika Anda belum memiliki kunci KMS, buat satu menggunakan perintah AWS CLI create-key berikut:

    $ aws kms create-key

    Outputnya berisi ID kunci dan Nama Sumber Daya Amazon (ARN) dari kunci KMS. Berikut ini adalah contoh output:

    { "KeyMetadata": { "KeyId": "01234567-89ab-cdef-0123-456789abcdef", "Description": "", "Enabled": true, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1478910250.94, "Arn": "arn:aws:kms:us-west-2:123456789012:key/01234567-89ab-cdef-0123-456789abcdef", "AWSAccountId": "123456789012" } }
  10. Dengan menggunakan langkah-langkah berikut, Anda memberikan izin kepada kepala AWS Private CA layanan untuk menggunakan kunci KMS. Secara default, semua kunci KMS bersifat pribadi; hanya pemilik sumber daya yang dapat menggunakan kunci KMS untuk mengenkripsi dan mendekripsi data. Namun, pemilik sumber daya dapat memberikan izin untuk mengakses kunci KMS ke pengguna dan sumber daya lain. Prinsipal layanan harus berada di Wilayah yang sama dengan tempat kunci KMS disimpan.

    1. Pertama, simpan kebijakan default untuk kunci KMS Anda seperti policy.json menggunakan get-key-policyperintah berikut:

      $ aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json
    2. Buka file policy.json di editor teks. Pilih salah satu pernyataan kebijakan berikut dan tambahkan ke kebijakan yang ada.

      Jika kunci bucket Amazon S3 diaktifkan, gunakan pernyataan berikut:

      { "Sid":"Allow ACM-PCA use of the key", "Effect":"Allow", "Principal":{ "Service":"acm-pca.amazonaws.com" }, "Action":[ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource":"*", "Condition":{ "StringLike":{ "kms:EncryptionContext:aws:s3:arn":"arn:aws:s3:::bucket-name" } } }

      Jika kunci bucket Amazon S3 dinonaktifkan, gunakan pernyataan berikut:

      { "Sid":"Allow ACM-PCA use of the key", "Effect":"Allow", "Principal":{ "Service":"acm-pca.amazonaws.com" }, "Action":[ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource":"*", "Condition":{ "StringLike":{ "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::bucket-name/acm-pca-permission-test-key", "arn:aws:s3:::bucket-name/acm-pca-permission-test-key-private", "arn:aws:s3:::bucket-name/audit-report/*", "arn:aws:s3:::bucket-name/crl/*" ] } } }
    3. Terakhir, terapkan kebijakan yang diperbarui menggunakan put-key-policyperintah berikut:

      $ aws kms put-key-policy --key-id key_id --policy-name default --policy file://policy.json

Menentukan URI Titik Distribusi CRL (CDP)

Jika Anda menggunakan bucket S3 sebagai CDP untuk CA Anda, URI CDP dapat berada dalam salah satu format berikut.

  • http://DOC-EXAMPLE-BUCKET.s3.region-code.amazonaws.com/crl/CA-ID.crl

  • http://s3.region-code.amazonaws.com/DOC-EXAMPLE-BUCKET/crl/CA-ID.crl

Jika Anda telah mengonfigurasi CA Anda dengan CNAME kustom, URI CDP akan menyertakan CNAME, misalnya, http://alternative.example.com/crl/CA-ID.crl