Menambahkan kebijakan penerbitan sertifikat
Menambahkan kebijakan penerbitan sertifikat di Layanan CA melibatkan penentuan aturan dan batasan yang mengatur jenis sertifikat yang diterbitkan oleh certificate authority (CA). Untuk mempelajari kebijakan penerbitan sertifikat lebih lanjut, lihat Tentang kebijakan penerbitan sertifikat.
Kebijakan penerbitan sertifikat memungkinkan Anda menentukan subjek dan nama alternatif subjek (SAN) yang dapat disertakan dalam sertifikat yang diterbitkan. Anda dapat menentukan kebijakan penerbitan sertifikat saat membuat kumpulan CA atau Anda dapat memperbarui kumpulan CA yang ada untuk menambahkan kebijakan penerbitan.
Untuk mengetahui informasi selengkapnya, lihat Ringkasan template dan kebijakan penerbitan.
Sebelum memulai
Pastikan Anda memiliki peran IAM CA Service Operation Manager (
roles/privateca.caManager
) atau CA Service Admin (roles/privateca.admin
). Untuk mengetahui informasi tentang cara memberikan IAM kepada akun utama, lihat Memberikan satu peran.
Anda dapat menambahkan kebijakan penerbitan sertifikat ke kumpulan CA saat membuat kumpulan CA atau saat mengupdate kumpulan CA yang ada.
Gunakan salah satu metode berikut:
Konsol
Buka halaman Certificate Authority Service di konsol Google Cloud. Buka Certificate Authority Service
Di halaman Pengelola kumpulan CA, klik nama kumpulan CA yang ingin Anda tambahkan kebijakan penerbitan sertifikat.
Di halaman CA pool, klik
Edit.
Setelan ini mengacu pada kolom Key Usage
dalam sertifikat
digital. Ekstensi ini menentukan cara kunci pribadi sertifikat dapat digunakan,
seperti untuk enkripsi kunci, enkripsi data, penandatanganan sertifikat, dan penandatanganan CRL.
Untuk informasi selengkapnya, lihat Penggunaan kunci.
- Untuk memilih penggunaan kunci dasar, klik tombol Tentukan penggunaan kunci dasar untuk sertifikat yang diterbitkan dari kumpulan CA ini, lalu pilih dari opsi yang tercantum.
- Klik Berikutnya.
Setelan ini mengacu pada kolom Extended Key Usage (EKU)
dalam sertifikat
digital. Kebijakan ini memberikan batasan yang lebih spesifik dan lebih baik tentang cara kunci
dapat digunakan, seperti untuk autentikasi server, autentikasi klien, penandatanganan kode,
dan perlindungan email. Untuk informasi selengkapnya, lihat
Penggunaan kunci yang diperluas.
Penggunaan kunci yang diperpanjang ditentukan menggunakan ID objek (OID). Jika Anda tidak mengonfigurasi penggunaan kunci yang diperpanjang, semua skenario penggunaan kunci akan diizinkan.
- Untuk memilih penggunaan kunci yang diperpanjang, klik tombol Tulis penggunaan kunci yang diperpanjang untuk sertifikat yang diterbitkan dari kumpulan CA ini, lalu pilih dari opsi yang tercantum.
- Klik Berikutnya.
Ekstensi kebijakan sertifikat dalam sertifikat menyatakan kebijakan yang diikuti oleh kumpulan CA penerbit. Ekstensi ini dapat menyertakan informasi tentang cara identitas divalidasi sebelum penerbitan sertifikat, cara sertifikat dicabut, dan cara integritas kumpulan CA dijamin. Ekstensi ini membantu Anda memverifikasi sertifikat yang diterbitkan kumpulan CA dan melihat cara sertifikat digunakan.
Untuk mengetahui informasi selengkapnya, lihat Kebijakan sertifikat.
Untuk menentukan kebijakan yang menentukan penggunaan sertifikat, lakukan hal berikut:
- Tambahkan ID kebijakan di kolom ID kebijakan.
- Klik Berikutnya.
Ekstensi AIA dalam sertifikat memberikan informasi berikut:
- Alamat server OCSP tempat Anda dapat memeriksa status pencabutan sertifikat.
- Metode akses untuk penerbit sertifikat.
Untuk mengetahui informasi selengkapnya, lihat Akses informasi otoritas.
Untuk menambahkan server OCSP yang muncul di kolom ekstensi AIA dalam sertifikat, lakukan hal berikut:
- Klik Tambahkan item.
- Di kolom Server URL, tambahkan URL server OCSP.
- Klik Selesai.
- Klik Berikutnya.
Kolom Opsi CA dalam template sertifikat menentukan cara sertifikat yang dihasilkan dapat digunakan dalam hierarki certificate authority (CA). Opsi CA menentukan apakah sertifikat dapat digunakan untuk menandatangani sertifikat lain dan, jika ya, batasan pada sertifikat yang diterbitkannya.
Pilih dari opsi berikut:
Sertakan konfigurasi untuk mendeskripsikan ekstensi X.509 CA: Tentukan setelan dalam template sertifikat yang mengontrol ekstensi X.509.
Batasi sertifikat yang diterbitkan agar hanya digunakan untuk CA: Opsi ini hanya muncul jika Anda mencentang kotak yang disebutkan pada langkah sebelumnya. Nilai boolean ini menunjukkan apakah sertifikat adalah sertifikat CA. Jika ditetapkan ke
true
, sertifikat dapat digunakan untuk menandatangani sertifikat lain. Jikafalse
, sertifikat adalah sertifikat entitas akhir dan tidak dapat menandatangani sertifikat lain. Jika mengklik tombol ini, Anda akan diminta lebih lanjut untuk menentukan batasan nama untuk ekstensi dalam sertifikat CA.Sertakan konfigurasi untuk mendeskripsikan ekstensi X.509 pembatasan panjang jalur: Tentukan setelan yang mengontrol panjang rantai sertifikat, yang berasal dari sertifikat tertentu. Jika panjang jalur penerbit maksimum ditetapkan ke
0
, CA hanya dapat menerbitkan sertifikat entitas akhir. Jika ditetapkan ke1
, rantai di bawah sertifikat CA ini hanya dapat menyertakan satu CA subordinasi. Jika nilai tidak dideklarasikan, jumlah CA subordinat dalam rantai di bawah CA ini tidak terbatas.- Klik Berikutnya.
Untuk mengonfigurasi ekstensi kustom tambahan yang akan disertakan dalam sertifikat yang dikeluarkan oleh kumpulan CA, lakukan hal berikut:
- Klik Tambahkan item.
- Di kolom Object identifier, tambahkan ID objek yang valid yang diformat sebagai angka yang dipisahkan titik.
- Di kolom Value, tambahkan nilai yang dienkode base64 untuk ID.
- Jika ekstensi penting, pilih Ekstensi penting.
Untuk menyimpan semua konfigurasi nilai dasar pengukuran, klik Done.
gcloud
Untuk menggunakan Google Cloud CLI guna menambahkan kebijakan penerbitan sertifikat ke kumpulan CA, Anda harus membuat file YAML yang menjelaskan batasan pada sertifikat yang dapat diterbitkan kumpulan CA. Konten sesuai dengan IssuancePolicy.
Menggunakan Cloud Shell Editor, buat file
policy.yaml
dengan konten berikut:identityConstraints: allowSubjectPassthrough: true allowSubjectAltNamesPassthrough: true
Dengan keterangan:
- Kolom
allowSubjectPassthrough
wajib diisi. Jika kolomallowSubjectPassthrough
ditetapkan ketrue
, kolom subjek akan disalin dari permintaan sertifikat ke sertifikat yang ditandatangani. Jika tidak, Subjek yang diminta akan dihapus. - Jika kolom
allowSubjectAltNamesPassthrough
ditetapkan ketrue
, ekstensi SubjectAltNames akan disalin dari permintaan sertifikat ke dalam sertifikat yang ditandatangani. Jika tidak, SubjectAltNames yang diminta akan dihapus.
- Kolom
Untuk memperbarui kebijakan penerbitan sertifikat kumpulan CA menggunakan file yang dibuat pada langkah sebelumnya, jalankan perintah berikut:
gcloud privateca pools update POOL_NAME --location LOCATION --issuance-policy FILE_PATH
Ganti kode berikut:
- POOL_NAME: nama kumpulan CA.
- LOCATION: lokasi kumpulan CA. Untuk mengetahui daftar lengkap lokasi, lihat Lokasi.
- FILE_PATH: jalur file
policy.yaml
.
Untuk informasi selengkapnya tentang perintah
gcloud privateca pools update
, lihat gcloud privateca pools update.
Batasan yang didukung
Layanan CA mendukung batasan kebijakan penerbitan berikut. Anda dapat menggabungkan batasan berikut sesuai kebutuhan untuk membuat kebijakan pemberian 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 diterbitkannya, menimpa nilai apa pun yang diminta, dengan menggunakan kolom baseline_values.
Nilai baseline_values kumpulan CA memungkinkan Anda menentukan properti berikut:
Anda juga dapat menggunakan opsi ini secara bersamaan.
Jika Anda memperbarui bagian mana pun dari kolom baseline_values
, pembaruan akan mengganti seluruh kumpulan nilai di kolom baseline_values
.
Contoh: Batasi CA agar 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: Batasi CA agar 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)][4]{: .external} ke kolom identity_constraints kebijakan penerbitan. Ekspresi CEL memungkinkan pembatasan arbitrer atas Nama Domain Subjek (termasuk nama umum) dan SAN sertifikat.
Untuk mengetahui informasi selengkapnya tentang penggunaan ekspresi CEL untuk membatasi Subject dan SAN, lihat Menggunakan CEL.
Contoh Mengizinkan CA hanya menerbitkan sertifikat yang cocok dengan Subject 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 dan SAN X.509 yang di-resolve sebelum sertifikat ditandatangani. Untuk informasi selengkapnya tentang penggunaan ekspresi CEL, lihat Menggunakan CEL.Contoh: Hanya izinkan SAN yang memiliki Nama DNS sebagai
us.google.org
atau berakhir 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 berakhiran 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 berlaku sertifikat yang diterbitkan, gunakan kolom maximum_lifetime. Jika masa berlaku yang diminta untuk sertifikat lebih besar dari masa berlaku maksimum, masa berlaku sertifikat akan dipotong secara eksplisit.
Contoh
Untuk mengizinkan masa aktif maksimum 30 hari, gunakan file policy.yaml
berikut:
policy.yaml
maximumLifetime: 2592000s
Membatasi mode penerbitan sertifikat yang diizinkan
Anda dapat meminta sertifikat melalui Permintaan Penandatanganan Sertifikat (CSR) atau deskripsi inline dari nilai yang diminta. Beberapa organisasi mungkin lebih memilih untuk menambahkan batasan pada opsi yang dapat digunakan karena metode terakhir tidak memerlukan bukti kepemilikan kunci pribadi terkait. Anda dapat menetapkan batasan ini menggunakan kolom allowedIssuanceModes.
Untuk mengetahui informasi selengkapnya tentang cara menentukan cara sertifikat dapat diminta dari kumpulan CA, lihat IssuanceModes.
Untuk mengetahui informasi selengkapnya tentang cara meminta sertifikat, lihat Membuat permintaan sertifikat.
Contoh: Hanya izinkan penerbitan CSR.
policy.yaml
allowedIssuanceModes:
allowCsrBasedIssuance: True
allowConfigBasedIssuance: False
Membatasi algoritma kunci publik 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, maka 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, kecuali 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: Mengizinkan kunci RSA dengan ukuran modulus antara 3072 bit dan 4096 bit (inklusif), atau kunci Elliptic Curve Digital Signature Algorithm (ECDSA) melalui 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 elips berikut:
EC_SIGNATURE_ALGORITHM_UNSPECIFIED
- Algoritma tanda tangan apa pun dapat digunakan.ECDSA_P256
- Tanda Tangan Digital Kurva Eliptik pada kurva NIST P-256.ECDSA_P384
- Tanda Tangan Digital Kurva Eliptik pada kurva NIST P-384.EDDSA_25519
- Algoritma Tanda Tangan Digital kurva Edwards pada kurva 25519, seperti yang dijelaskan dalam RFC 8410.
Langkah berikutnya
- 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.