Menambahkan kebijakan penerbitan sertifikat ke kumpulan CA
Halaman ini menjelaskan cara menambahkan kebijakan penerbitan sertifikat ke kumpulan certificate authority (CA).
Kebijakan penerbitan sertifikat memungkinkan Anda menentukan nama alternatif subjek dan subjek (SAN) yang dapat disertakan dalam sertifikat yang diterbitkan. Anda dapat menentukan kebijakan penerbitan sertifikat saat membuat kumpulan CA atau memperbarui kumpulan CA yang ada untuk menambahkan kebijakan penerbitan.
Untuk informasi selengkapnya, lihat Ringkasan kebijakan template dan penerbitan.
Sebelum memulai
Pastikan Anda memiliki peran IAM CA Service Operation Manager (
roles/privateca.caManager
) atau CA Service Admin (roles/privateca.admin
). Untuk informasi tentang cara memberikan IAM ke akun utama, lihat Memberikan satu peran.
Menambahkan file kebijakan penerbitan sertifikat
Untuk menambahkan kebijakan penerbitan sertifikat ke kumpulan CA yang ada, lakukan hal berikut:
Konsol
Buka halaman Certificate Authority Service di Konsol Google Cloud.
Di halaman Pengelola kumpulan CA, klik nama kumpulan CA yang ingin Anda tambahkan kebijakan penerbitan sertifikat.
Di halaman CA pool, klik
Edit.
Untuk mengonfigurasi batasan pada subjek dan SAN di sertifikat yang diterbitkan oleh kumpulan CA, lakukan hal berikut:
- Opsional: Untuk melarang subjek dalam permintaan sertifikat diteruskan, klik tombol.
- Opsional: Untuk melarang nama alternatif subjek dalam permintaan sertifikat diteruskan, klik tombol.
- Opsional: Tambahkan ekspresi Common Expression Language (CEL) untuk membatasi subjek sertifikat. Untuk informasi selengkapnya, lihat Menggunakan CEL.
- Klik Next.
Untuk melarang semua ekstensi dari permintaan sertifikat disertakan dalam sertifikat yang diterbitkan, klik tombol.
Setelah mengklik tombol, Anda akan melihat kolom Known certificate extensions yang dapat digunakan untuk memilih ekstensi sertifikat. Untuk memilih ekstensi sertifikat, lakukan langkah berikut:
- Opsional: Klik kolom Known certificate extensions, lalu hapus ekstensi yang tidak diperlukan dari menu.
- Opsional: Di kolom Ekstensi kustom, tambahkan ID objek untuk ekstensi yang ingin Anda sertakan dalam sertifikat yang diterbitkan oleh kumpulan CA.
Untuk mengonfigurasi nilai dasar pengukuran dalam sertifikat yang diterbitkan dari kumpulan CA, lakukan hal berikut:
- Klik tombol.
- Klik Configure baseline values.
Anda dapat menggunakan setelan ini untuk mengonfigurasi cara menggunakan kunci yang terdapat dalam sertifikat. Opsi penggunaan kunci mencakup enkripsi kunci, enkripsi data, penandatanganan sertifikat, penandatanganan CRL, dan lain-lain.
Untuk mengetahui informasi selengkapnya, lihat Penggunaan kunci
Untuk menentukan penggunaan kunci dasar, lakukan hal berikut:
- Opsional: Di jendela yang muncul, klik tombolnya, jika Anda ingin menentukan penggunaan kunci dasar untuk sertifikat.
- Pilih kotak centang sesuai cara penggunaan kunci yang Anda inginkan.
- Klik Next.
Anda dapat menggunakan setelan ini untuk memilih skenario yang lebih terperinci agar kunci yang terdapat dalam sertifikat dapat digunakan. Opsi tersebut meliputi autentikasi server, autentikasi klien, penandatanganan kode, perlindungan email, dan banyak lagi.
Penggunaan kunci yang diperpanjang ditentukan menggunakan ID objek (OID). Jika Anda tidak mengonfigurasi penggunaan kunci yang diperpanjang, semua skenario penggunaan kunci akan diizinkan.
Untuk mengetahui informasi selengkapnya, lihat Penggunaan kunci yang diperpanjang.
Untuk menentukan penggunaan kunci yang diperpanjang, lakukan langkah berikut:
- Opsional: Klik tombol untuk menentukan penggunaan kunci yang diperpanjang untuk sertifikat yang diterbitkan oleh kumpulan CA.
- Pilih kotak centang untuk skenario penggunaan kunci yang diperpanjang.
- Klik Next.
Ekstensi kebijakan sertifikat dalam sertifikat mengungkapkan kebijakan yang diikuti oleh kumpulan CA penerbit. Ekstensi ini dapat mencakup informasi tentang cara identitas divalidasi sebelum penerbitan sertifikat, cara sertifikat dicabut, dan cara memastikan integritas kumpulan CA. Ekstensi ini membantu Anda memverifikasi sertifikat yang diterbitkan oleh kumpulan CA dan melihat cara sertifikat digunakan.
Untuk mengetahui informasi selengkapnya, lihat Kebijakan sertifikat.
Untuk menentukan kebijakan yang menentukan penggunaan sertifikat, lakukan hal berikut:
- Opsional: Tambahkan ID kebijakan di kolom ID kebijakan.
- Klik Next.
Ekstensi AIA dalam sertifikat memberikan informasi berikut:
- Alamat server OCSP tempat Anda dapat memeriksa status pencabutan sertifikat.
- Metode akses untuk penerbit sertifikat.
Untuk informasi selengkapnya, lihat Akses informasi otoritas.
Untuk menambahkan server OCSP yang muncul di kolom ekstensi AIA di sertifikat, lakukan hal berikut. Prosedur berikut bersifat opsional.
- Opsional: Klik Tambahkan item.
- Di kolom URL Server, tambahkan URL server OCSP.
- Klik Done.
- Klik Next.
Untuk mengonfigurasi ekstensi kustom tambahan agar disertakan dalam sertifikat yang diterbitkan oleh kumpulan CA, lakukan hal berikut. Prosedur berikut bersifat opsional.
- Klik Tambahkan item.
- Di kolom Object identifier, tambahkan ID objek valid yang diformat sebagai digit yang dipisahkan titik.
- Di kolom Nilai, tambahkan nilai yang dienkode base64 untuk ID.
- Jika ekstensi sangat penting, pilih Ekstensi sangat penting.
Untuk menyimpan semua konfigurasi nilai dasar pengukuran, klik Selesai.
gcloud
Agar dapat menggunakan Google Cloud CLI untuk menambahkan kebijakan penerbitan sertifikat ke kumpulan CA, Anda harus membuat file YAML yang menjelaskan pembatasan pada sertifikat yang dapat diterbitkan oleh kumpulan CA. Konten ini sesuai dengan IssuancePolicy.
Dengan Cloud Shell Editor, buat file
policy.yaml
dengan konten berikut:identityConstraints: allowSubjectPassthrough: true allowSubjectAltNamesPassthrough: true
Dengan keterangan:
- Kolom
allowSubjectPassthrough
wajib diisi. Jika kolomallowSubjectPassthrough
disetel ketrue
, kolom subjek akan disalin dari permintaan sertifikat ke dalam sertifikat yang ditandatangani. Jika tidak, Subjek yang diminta akan dibuang. - Jika kolom
allowSubjectAltNamesPassthrough
disetel ketrue
, ekstensi SubjectAltNames akan disalin dari permintaan sertifikat ke sertifikat yang ditandatangani. Jika tidak, SubjectAltNames yang diminta akan dihapus.
- Kolom
Untuk memperbarui kebijakan penerbitan sertifikat kumpulan CA menggunakan file yang dibuat di langkah sebelumnya, jalankan perintah berikut:
gcloud privateca pools update POOL_NAME \ --issuance-policy FILE_PATH
Ganti kode berikut:
- POOL_NAME: Nama kumpulan CA.
- FILE_PATH: Jalur file
policy.yaml
.
Untuk mengetahui informasi selengkapnya tentang perintah
gcloud privateca pools update
, lihat gcloud privateca pool update.
Untuk mengetahui informasi selengkapnya, lihat Membuat kumpulan CA.
Pembatasan yang didukung
CA Service mendukung pembatasan kebijakan penerbitan berikut. Anda dapat menggabungkan pembatasan berikut seperlunya untuk membuat kebijakan penerbitan sertifikat kustom.
Membatasi atau memaksa nilai X.509 yang diizinkan
Kumpulan CA dapat membatasi nilai X.509 yang diizinkan dalam permintaan sertifikat dengan mengonfigurasi kolom passthrough_extensions.
Kumpulan CA juga dapat secara eksplisit menentukan nilai X.509 yang akan ditambahkan ke semua sertifikat yang diterbitkan, yang menimpa nilai apa pun yang diminta, dengan menggunakan kolom baseline_values.
Nilai baseline_values kumpulan CA memungkinkan penentuan properti berikut:
Anda juga dapat menggunakan opsi ini bersama-sama.
Jika Anda mengupdate bagian mana pun dari kolom baseline_values
, update tersebut akan menggantikan seluruh kumpulan nilai di kolom baseline_values
.
Contoh: Batasi CA untuk hanya menerbitkan sertifikat entitas akhir dengan nilai X.509 untuk TLS bersama (mTLS).
policy.yaml
baselineValues: caOptions: isCa: false keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: clientAuth: true serverAuth: true
Contoh: Membatasi CA untuk hanya menerbitkan sertifikat penandatanganan kode entitas akhir dengan URL OCSP AIA dasar pengukuran.
policy.yaml
baselineValues: caOptions: isCa: false keyUsage: baseKeyUsage: digitalSignature: true extendedKeyUsage: codeSigning: true aiaOcspServers: - "http://foo.bar/revocation" additionalExtensions: - objectId: objectIdPath: - 1 - 2 - 3 critical: false value: "base64 encoded extension value"
Untuk informasi selengkapnya tentang profil sertifikat untuk mTLS entitas akhir, lihat mTLS entitas akhir.
Membatasi kolom identitas yang diizinkan
Untuk membatasi identitas sertifikat yang diterbitkan melalui kumpulan CA, Anda dapat menambahkan ekspresi Common Expression Language (CEL) ke kolom identity_constraints pada kebijakan penerbitan. Ekspresi CEL memungkinkan pembatasan arbitrer atas Nama Domain Subjek (termasuk nama umum) dan SAN sertifikat.
Untuk informasi selengkapnya tentang penggunaan ekspresi CEL untuk membatasi Subjek dan SAN, lihat Menggunakan CEL.
Contoh Izinkan CA hanya menerbitkan sertifikat yang cocok dengan Subjek yang ditentukan.
policy.yaml
identityConstraints: allowSubjectPassthrough: true allowSubjectAltNamesPassthrough: false celExpression: expression: 'subject.organization == "Example LLC" && subject.country_code in ["US", "UK"]'
Kolom
celExpression
bersifat opsional. Gunakan ekspresi Common Expression Language (CEL) untuk memvalidasi subjek X.509 dan SAN yang telah di-resolve sebelum sertifikat ditandatangani. Untuk mengetahui informasi selengkapnya tentang penggunaan ekspresi CEL, lihat Menggunakan CEL.Contoh: Hanya izinkan SAN yang memiliki Nama DNS
us.google.org
atau diakhiri dengan.google.com
.policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == DNS && (san.value == "us.google.org" || san.value.endsWith(".google.com")) )'
Contoh: Hanya izinkan SAN yang memiliki URI
https://google.com/webhp
atau dimulai denganspiffe://example-trust-domain-1/ns/namespace1/sa/
.policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == URI && (san.value == "https://google.com/webhp" || san.value.startsWith("spiffe://example-trust-domain-1/ns/namespace1/sa/")) )'
Contoh: Hanya izinkan SAN yang memiliki alamat email
example@google.com
atau diakhiri dengan@google.org
.policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == EMAIL && (san.value == "example@google.com" || san.value.endsWith("@google.org")) )'
Contoh: Hanya izinkan SAN kustom yang memiliki OID tertentu dan nilai kustom.
policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == CUSTOM && san.oid == [1, 2, 3, 4] && san.value == "custom-data" )'
Membatasi masa berlaku maksimum sertifikat yang diterbitkan
Untuk membatasi masa aktif sertifikat yang diterbitkan, gunakan kolom maximum_lifetime. Jika masa aktif sertifikat yang diminta lebih besar daripada masa aktif maksimum, masa berlaku sertifikat akan terpotong secara eksplisit.
Contoh
Untuk mengizinkan masa aktif maksimum 30 hari, gunakan file policy.yaml
berikut:
policy.yaml
maximumLifetime: 2592000s
Batasi mode penerbitan sertifikat yang diizinkan
Anda dapat meminta sertifikat baik melalui Permintaan Penandatanganan Sertifikat (CSR) atau deskripsi inline dari nilai yang diminta. Beberapa organisasi mungkin memilih untuk menambahkan batasan pada opsi yang dapat digunakan karena metode yang kedua tidak memerlukan bukti kepemilikan kunci pribadi terkait. Anda dapat menetapkan batasan ini menggunakan kolom allowedIssuanceModes.
Untuk informasi selengkapnya tentang cara menentukan cara meminta sertifikat dari kumpulan CA, lihat IssuanceModes.
Untuk informasi selengkapnya tentang cara meminta sertifikat, lihat Meminta sertifikat dan melihat sertifikat yang diterbitkan.
Contoh: Hanya izinkan penerbitan CSR.
policy.yaml
allowedIssuanceModes:
allowCsrBasedIssuance: True
allowConfigBasedIssuance: False
Membatasi algoritma kunci publik dari permintaan sertifikat
Untuk membatasi panjang kunci minimum dan algoritma kunci publik yang dapat digunakan sertifikat, Anda dapat menggunakan kolom allowedKeyTypes dalam file YAML kebijakan penerbitan sertifikat. Jika kolom ini ditentukan, kunci publik permintaan sertifikat harus cocok dengan salah satu jenis kunci yang tercantum dalam file YAML. Jika kolom ini tidak ditentukan, Anda dapat menggunakan kunci apa pun, dengan pengecualian kunci RSA yang ukuran modulusnya kurang dari 2048 bit. Jika ingin menggunakan kunci RSA dengan ukuran modulus kurang dari 2048 bit, Anda harus mengizinkannya secara eksplisit menggunakan kebijakan penerbitan sertifikat.
Contoh: Izinkan kunci RSA dengan ukuran modulus antara 3072 bit dan 4096 bit (inklusif), atau kunci Elliptic Curve Digital Signature Algorithm (ECDSA) di atas kurva NIST P-256.
policy.yaml
allowedKeyTypes:
- rsa:
minModulusSize: 3072
maxModulusSize: 4096
- ellipticCurve:
signatureAlgorithm: ECDSA_P256
Anda dapat memilih salah satu algoritma tanda tangan kurva eliptis berikut:
EC_SIGNATURE_ALGORITHM_UNSPECIFIED
- Algoritma tanda tangan apa pun dapat digunakan.ECDSA_P256
- Tanda Tangan Digital Kurva Eliptik di atas kurva NIST P-256.ECDSA_P384
- Tanda Tangan Digital Kurva Eliptik di atas kurva NIST P-384.EDDSA_25519
- Algoritma Tanda Tangan Digital Edwards-curve pada curve 25519, seperti yang dijelaskan dalam RFC 8410.
Langkah selanjutnya
- Pelajari profil sertifikat lebih lanjut.
- Pelajari lebih lanjut cara meminta sertifikat.
- Pelajari cara mengonfigurasi kebijakan IAM.
- Pelajari cara menggunakan Common Expression Language (CEL).
- Pelajari cara mengelola berbagai kontrol kebijakan.