Membuat template sertifikat
Halaman ini menjelaskan atribut template sertifikat dan menjelaskan cara membuat template sertifikat. Untuk mempelajari template sertifikat lebih lanjut, lihat Tentang template sertifikat.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan saat membuat template sertifikat, minta administrator untuk memberi Anda peran IAM Pengelola Operasi Layanan CA (roles/privateca.caManager) di project, folder, atau organisasi.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat template sertifikat
Untuk membuat template sertifikat, gunakan salah satu metode berikut:
Konsol
Buka halaman Certificate Authority Service di Google Cloud konsol.
Klik tab Template manager, lalu klik Create template.
Pilih lokasi untuk template sertifikat menggunakan daftar Region. Lokasi ini harus sama dengan lokasi CA pool yang ingin Anda gunakan dengan template sertifikat.
Masukkan ID unik untuk template sertifikat di kolom Certificate template ID. Jika mau, berikan deskripsi untuk template sertifikat.
Klik Next.
Jika ingin mengonfigurasi nilai x.509 default untuk sertifikat yang menggunakan template ini, klik tombol Include predefined values in certificates issued using this certificate template. Kemudian, klik Configure predefined values.
Siapkan nilai yang telah ditentukan sebelumnya menggunakan informasi berikut:
Menentukan penggunaan kunci dasar
Setelan ini mengacu pada kolom
Key Usagedalam sertifikat digital. Setelan ini menentukan cara kunci pribadi sertifikat dapat digunakan, seperti untuk enkripsi kunci, enkripsi data, penandatanganan sertifikat, dan penandatanganan CRL. Untuk mengetahui informasi selengkapnya, lihat Penggunaan kunci.- Untuk memilih penggunaan kunci dasar, klik tombol Specify base key usages for certificates issued from this CA pool , lalu pilih dari opsi yang tercantum.
- Klik Next.
Menentukan penggunaan kunci yang diperpanjang
Setelan ini mengacu pada kolom
Extended Key Usage (EKU)dalam sertifikat digital. Setelan ini memberikan batasan yang lebih spesifik dan disempurnakan tentang cara kunci dapat digunakan, seperti untuk autentikasi server, autentikasi klien, penandatanganan kode, perlindungan email, dan lainnya. Untuk mengetahui informasi selengkapnya, lihat Penggunaan kunci yang diperpanjang.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 Write extended key usages for certificates issued from this CA pool, lalu pilih dari opsi yang tercantum.
- Klik Next.
Menentukan ID kebijakan
Ekstensi kebijakan sertifikat dalam sertifikat menyatakan kebijakan yang diikuti oleh CA pool penerbit. Ekstensi ini dapat mencakup informasi tentang cara identitas divalidasi sebelum penerbitan sertifikat, cara sertifikat dicabut, dan cara integritas CA pool dipastikan. Ekstensi ini membantu Anda memverifikasi sertifikat yang diterbitkan CA pool 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 Policy identifiers.
- Klik Next.
Menambahkan server OCSP Akses informasi otoritas (AIA)
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.
Menambahkan server OCSP bersifat opsional. Untuk menambahkan server OCSP yang muncul di kolom ekstensi AIA dalam sertifikat, lakukan hal berikut:
- Klik Add item.
- Di kolom Server URL, tambahkan URL server OCSP.
- Klik Done.
- Klik Next.
Opsi CA
Kolom CA options dalam template sertifikat menentukan cara sertifikat yang dihasilkan dapat digunakan dalam hierarki Certificate Authority (CA). Kolom ini pada dasarnya menentukan apakah sertifikat dapat digunakan untuk menandatangani sertifikat lain, dan jika ya, batasan apa pun pada sertifikat yang diterbitkannya.
Pilih dari opsi berikut:
Sertakan konfigurasi untuk menjelaskan ekstensi CA X.509: Tentukan setelan dalam template sertifikat yang mengontrol ekstensi X.509.
Restrict issued certificates to be used only for CAs: 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 tersebut adalah sertifikat entitas akhir dan tidak dapat menandatangani sertifikat lain. Jika Anda mengklik tombol ini, Anda akan diminta lebih lanjut untuk menentukan batasan nama untuk ekstensi dalam sertifikat CA.Sertakan konfigurasi untuk menjelaskan ekstensi X.509 pembatasan panjang jalur: Tentukan setelan yang mengontrol panjang rantai sertifikat, yang berasal dari sertifikat tertentu.Setelan ini menentukan jumlah maksimum CA yang dapat dirantai hingga sertifikat CA ini. 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 subordinat. Jika nilai tidak dideklarasikan, jumlah CA subordinat dalam rantai di bawah CA ini tidak dibatasi.- Klik Next.
Mengonfigurasi ekstensi tambahan
Opsional: Anda dapat mengonfigurasi ekstensi kustom tambahan untuk disertakan dalam sertifikat yang diterbitkan oleh CA pool. Lakukan tindakan berikut:
- Klik Add item.
- Di kolom Object identifier, tambahkan ID objek yang valid yang diformat sebagai digit yang dipisahkan titik.
- Di kolom Value, tambahkan nilai berenkode base64 untuk ID.
- Jika ekstensi bersifat penting, pilih Extension is critical.
Untuk menyimpan semua nilai yang telah ditentukan sebelumnya, klik Done.
Selanjutnya, buka bagian Configure extension constraints. Pilih salah satu opsi berikut:
- Copy all the extensions from certificate requests to the certificate
- Drop all extensions from certificate requests
- Copy specific extensions from certificate requests to the certificate
- Jika memilih untuk menyalin ekstensi tertentu, Anda dapat melakukan hal berikut:
- Klik kolom Known certificate extensions, lalu hapus ekstensi yang tidak diperlukan dari daftar.
- Di kolom Custom extensions, tambahkan ID objek untuk ekstensi yang ingin disertakan dalam sertifikat yang diterbitkan CA pool.
Klik Next, lalu buka bagian Configure identity constraints. Untuk mengonfigurasi batasan pada subjek dan SAN dalam sertifikat yang diterbitkan CA pool, pilih satu atau kedua opsi berikut:
- Copy subject from the certificate requests to the certificate
- Copy subject alternative names (SAN) from the certificate requests to the certificate
Klik Next, lalu klik Done.
gcloud
gcloud privateca templates create TEMPLATE_ID \
--copy-subject \
--copy-sans \
--identity-cel-expression <expr> \
--predefined-values-file FILE_PATH \
--copy-all-requested-extensions \
--copy-extensions-by-oid <1.2.3.4,5.6.7.8> \
--copy-known-extensions <ext1,ext2>
Ganti kode berikut:
- TEMPLATE_ID: ID unik template sertifikat.
- FILE_PATH: file YAML yang menjelaskan nilai X.509 yang ditetapkan oleh template sertifikat.
Flag --copy-sans memungkinkan ekstensi Nama Alternatif Subjek (SAN) dari permintaan sertifikat disalin ke dalam sertifikat yang ditandatangani. Atau, Anda dapat menentukan --no-copy-sans untuk menghapus SAN yang ditentukan pemanggil dari permintaan sertifikat.
Flag --copy-subject memungkinkan Subjek dari permintaan sertifikat disalin ke dalam sertifikat yang ditandatangani. Atau, Anda dapat menentukan --no-copy-subject untuk menghapus subjek yang ditentukan pemanggil dari permintaan sertifikat.
Flag --identity-cel-expression menggunakan ekspresi CEL yang dievaluasi terhadap Subjek dan Nama Alternatif Subjek sertifikat sebelum diterbitkan, dan menampilkan boolean yang menunjukkan apakah permintaan harus diizinkan. Untuk mengetahui informasi tentang cara menggunakan ekspresi Common Expression Language (CEL) untuk template sertifikat, lihat Menggunakan CEL untuk template sertifikat.
Flag --predefined-values-file menentukan jalur ke file YAML yang menjelaskan nilai X.509 yang telah ditentukan sebelumnya yang ditetapkan oleh template ini. Ekstensi yang diberikan akan disalin ke permintaan sertifikat apa pun yang menggunakan template ini, sehingga lebih diutamakan daripada ekstensi yang diizinkan dalam permintaan sertifikat. Jika Anda memperbarui bagian mana pun dari nilai X.509 yang telah ditentukan sebelumnya, pembaruan tersebut akan menggantikan seluruh kumpulan nilai X.509 yang telah ditentukan sebelumnya.
Jika flag --copy-all-requested-extensions ditetapkan, semua ekstensi yang ditentukan dalam permintaan sertifikat akan disalin ke dalam sertifikat yang ditandatangani.
Jika flag --copy-extensions-by-oid ditetapkan, OID tertentu akan disalin dari permintaan sertifikat ke dalam sertifikat yang ditandatangani.
Jika flag --copy-known-extensions ditetapkan, ekstensi tertentu akan disalin dari permintaan sertifikat ke dalam sertifikat yang ditandatangani. Ekstensi yang diketahui ini dapat berupa salah satu dari yang berikut: base-key-usage, extended-key-usage, ca-options, policy-ids, atau aia-ocsp-servers.
Hapus flag --copy-all-requested-extensions untuk mengabaikan semua ekstensi X.509 dalam permintaan sertifikat, tetapi tetap menyimpan nilai yang telah ditentukan sebelumnya yang ditentukan dalam template ini.
Berikut adalah contoh konfigurasi template sertifikat:
keyUsage:
baseKeyUsage:
digitalSignature: true
keyEncipherment: true
contentCommitment: false
dataEncipherment: false
keyAgreement: false
certSign: false
crlSign: false
encipherOnly: false
decipherOnly: false
extendedKeyUsage:
serverAuth: true
clientAuth: false
codeSigning: false
emailProtection: false
timeStamping: false
ocspSigning: false
caOptions:
isCa: true
maxIssuerPathLength: 1
policyIds:
- objectIdPath:
- 1
- 2
- 3
additionalExtensions:
- objectId:
objectIdPath:
- 1
- 2
- 3
critical: false
value: "base64 encoded extension value"
Nilai yang tidak ditentukan dalam YAML akan dihilangkan atau ditetapkan secara default ke false.
Ekstensi berikut akan dihilangkan jika nilai tidak ditentukan:
keyUsagepolicyIdsadditionalExtensions- Kolom
maxIssuerPathLengthdi ekstensicaOptions
Ekstensi berikut ditetapkan secara default ke false jika nilai tidak ditentukan:
- Kolom
isCadi ekstensicaOptions
Membuat template sertifikat untuk skenario umum
Bagian ini menyediakan perintah gcloud untuk membuat template sertifikat untuk kasus penggunaan umum.
Sertifikat TLS server DNS untuk domain apa pun
Untuk membuat template sertifikat untuk menerbitkan sertifikat TLS server yang mengizinkan domain apa pun, gunakan petunjuk berikut:
Buat file dengan nama
leaf_server_tls_values.yamldan tambahkan konfigurasi TLS server entitas akhir berikut ke dalamnya:leaf_server_tls_values.yaml
keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true caOptions: isCa: falseUntuk hanya mengizinkan sertifikat dengan SAN jenis
DNS, jalankan perintahgcloudberikut:gcloud
gcloud privateca templates create server-tls \ --predefined-values-file leaf_server_tls_values.yaml \ --copy-sans --no-copy-subject \ --identity-cel-expression "subject_alt_names.all(san, san.type == DNS)"Untuk mengetahui informasi selengkapnya tentang perintah
gcloud privateca templates create, lihat gcloud privateca templates create.
Sertifikat TLS server DNS hanya dengan domain pengujian
Untuk membuat template sertifikat untuk menerbitkan sertifikat TLS server dengan SAN DNS yang terbatas pada domain pengujian, gunakan perintah gcloud berikut:
gcloud
gcloud privateca templates create server-tls \
--predefined-values-file leaf_server_tls_values.yaml \
--copy-sans --no-copy-subject \
--identity-cel-expression "subject_alt_names.all(san, san.type == DNS && san.value.endsWith('.test.example.com'))"
Konten file leaf_server_tls_values.yaml harus sama dengan contoh sebelumnya.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan ekspresi CEL untuk memastikan nama DNS dimulai atau diakhiri dengan string tertentu, lihat Contoh ekspresi CEL.
Sertifikat workload identity
Untuk membuat template sertifikat untuk menerbitkan sertifikat TLS timbal balik (mTLS), gunakan petunjuk berikut:
Buat file dengan nama
leaf_mtls_values.yamldan tambahkan konfigurasi TLS timbal balik entitas akhir berikut ke dalamnya.leaf_mtls_values.yaml
keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: falseUntuk hanya mengizinkan sertifikat dengan SPIFFE SAN URI, gunakan perintah berikut
gcloud:gcloud
gcloud privateca templates create workload-spiffe \ --predefined-values-file leaf_mtls_values.yaml \ --copy-sans --no-copy-subject \ --identity-cel-expression "subject_alt_names.all(san, san.type == URI && san.value.startsWith('spiffe://'))"Untuk mengetahui informasi selengkapnya tentang perintah
gcloud privateca templates create, lihat gcloud privateca templates create.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan ekspresi CEL untuk memastikan nama DNS dimulai atau diakhiri dengan string tertentu, lihat Contoh ekspresi CEL.
Memberikan akses ke template sertifikat
Anda dapat menggunakan template sertifikat jika memiliki peran Pengguna Template Sertifikat Layanan CA (roles/privateca.templateUser). Sebaiknya penulis template sertifikat memberikan peran Pengguna Template Sertifikat Layanan CA kepada anggota di organisasi yang mungkin menggunakan template sertifikat tersebut.
Untuk memberikan peran Pengguna Template Sertifikat Layanan CA (roles/privateca.templateUser) kepada semua orang di domain example.com, gunakan perintah gcloud berikut:
gcloud
gcloud privateca templates add-iam-policy-binding TEMPLATE_ID \
--member "domain:example.com" \
--role "roles/privateca.templateUser"
Ganti kode berikut:
- TEMPLATE_ID: ID unik template sertifikat.
Untuk mengetahui informasi selengkapnya tentang perintah gcloud privateca templates add-iam-policy-binding, lihat gcloud privateca templates add-iam-policy-binding.
Untuk mengetahui informasi selengkapnya tentang peran IAM untuk Layanan CA, dan izin terkaitnya, lihat Kontrol akses dengan IAM.
Langkah berikutnya
- Pelajari tentang Common Expression Language.
- Pelajari cara menggunakan Common Expression Language.
- Pelajari tentang profil sertifikat.