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 guna membuat template sertifikat, minta administrator untuk memberi Anda peran IAM CA Service Operation Manager (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

  1. Buka halaman Certificate Authority Service di konsol Google Cloud.

    Buka Certificate Authority Service

  2. Klik tab Pengelola template, lalu klik Buat template.

  3. Pilih lokasi untuk template sertifikat menggunakan daftar Region. Lokasi ini harus sama dengan kumpulan CA yang ingin Anda gunakan dengan template sertifikat.

  4. Masukkan ID unik untuk template sertifikat di kolom ID template sertifikat. Secara opsional, berikan deskripsi untuk template sertifikat.

  5. Klik Berikutnya.

  6. Jika Anda ingin mengonfigurasi nilai x.509 default untuk sertifikat yang menggunakan template ini, klik tombol Sertakan nilai yang telah ditentukan sebelumnya dalam sertifikat yang diterbitkan menggunakan template sertifikat ini. Kemudian, klik Konfigurasi nilai standar.

  7. Siapkan nilai standar menggunakan informasi berikut:

    Menentukan penggunaan kunci dasar

    Setelan ini mengacu pada kolom Key Usage dalam sertifikat digital. Ekstensi ini menentukan cara penggunaan kunci pribadi sertifikat, seperti untuk enkripsi kunci, enkripsi data, penandatanganan sertifikat, dan penandatanganan CRL. Untuk informasi selengkapnya, lihat Penggunaan kunci.

    1. 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.
    2. Klik Berikutnya.

    Menentukan penggunaan kunci yang diperpanjang

    Setelan ini mengacu pada kolom Extended Key Usage (EKU) dalam sertifikat digital. Keystore memberikan batasan yang lebih spesifik dan lebih baik tentang cara kunci dapat digunakan seperti untuk autentikasi server, autentikasi klien, penandatanganan kode, perlindungan email, dan lainnya. Untuk informasi selengkapnya, lihat Extended key usage.

    Penggunaan kunci yang diperpanjang ditentukan menggunakan ID objek (OID). Jika Anda tidak mengonfigurasi penggunaan kunci yang diperpanjang, semua skenario penggunaan kunci akan diizinkan.

    1. 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.
    2. Klik Berikutnya.

    Menentukan ID kebijakan

    Ekstensi kebijakan sertifikat dalam sertifikat menyatakan kebijakan yang diikuti oleh kumpulan CA penerbit. Ekstensi ini dapat menyertakan informasi tentang cara ID 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:

    1. Opsional: Tambahkan ID kebijakan di kolom ID kebijakan.
    2. Klik Berikutnya.

    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:

    1. Klik Tambahkan item.
    2. Di kolom Server URL, tambahkan URL server OCSP.
    3. Klik Selesai.
    4. Klik Berikutnya.

    Opsi CA

    Kolom Opsi CA dalam template sertifikat menentukan cara sertifikat yang dihasilkan dapat digunakan dalam hierarki Certificate Authority (CA). Pada dasarnya, kebijakan ini menentukan apakah sertifikat dapat digunakan untuk menandatangani sertifikat lain, dan jika ya, pembatasan apa pun pada sertifikat yang diterbitkannya.

    Pilih dari opsi berikut:

    1. Sertakan konfigurasi untuk mendeskripsikan ekstensi X.509 CA: Tentukan setelan dalam template sertifikat yang mengontrol ekstensi X.509.

    2. 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. Jika false, sertifikat tersebut 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.

    3. Sertakan konfigurasi untuk mendeskripsikan ekstensi X.509 pembatasan panjang jalur: Tentukan setelan yang mengontrol durasi rantai sertifikat, yang berasal dari sertifikat tertentu.Konfigurasi ini menentukan jumlah maksimum CA yang dapat dirantai ke sertifikat CA ini. Jika panjang jalur penerbit maksimum ditetapkan ke 0, CA hanya dapat menerbitkan sertifikat entitas akhir. Jika ditetapkan ke 1, rantai di bawah sertifikat CA ini hanya dapat menyertakan satu CA subordinasi. Jika nilai tidak dideklarasikan, jumlah CA bawahan dalam rantai di bawah CA ini tidak terbatas.

    4. Klik Berikutnya.

    Mengonfigurasi ekstensi tambahan

    Opsional: Anda dapat mengonfigurasi ekstensi kustom tambahan untuk disertakan dalam sertifikat yang diterbitkan oleh kumpulan CA. Lakukan tindakan berikut:

    1. Klik Tambahkan item.
    2. Di kolom Object identifier, tambahkan ID objek yang valid yang diformat sebagai angka yang dipisahkan titik.
    3. Di kolom Value, tambahkan nilai yang dienkode base64 untuk ID.
    4. Jika ekstensi penting, pilih Ekstensi penting.
  8. Untuk menyimpan semua nilai yang telah ditentukan sebelumnya, klik Done.

  9. Selanjutnya, buka bagian Configure extension constraints. Pilih salah satu opsi berikut:

    • Menyalin semua ekstensi dari permintaan sertifikat ke sertifikat
    • Menghapus semua ekstensi dari permintaan sertifikat
    • Menyalin ekstensi tertentu dari permintaan sertifikat ke sertifikat
  10. 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 Anda sertakan dalam sertifikat yang diterbitkan oleh kumpulan CA.

  11. Klik Berikutnya, lalu buka bagian Konfigurasikan batasan identitas. Untuk mengonfigurasi batasan pada subjek dan SAN dalam sertifikat yang dikeluarkan oleh kumpulan CA, pilih salah satu atau kedua opsi berikut:

    • Menyalin subjek dari permintaan sertifikat ke sertifikat
    • Menyalin nama alternatif subjek (SAN) dari permintaan sertifikat ke sertifikat
    Opsional: Di bagian Configure identity constraints, tambahkan ekspresi Common Expression Language (CEL) untuk menentukan batasan pada subjek sertifikat. Untuk mengetahui informasi selengkapnya, lihat Menggunakan CEL.

  12. Klik Berikutnya, lalu klik Selesai.

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 informasi tentang penggunaan 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 standar yang ditetapkan oleh template ini. Ekstensi yang diberikan akan disalin ke permintaan sertifikat apa pun yang menggunakan template ini, yang lebih diprioritaskan daripada ekstensi yang diizinkan dalam permintaan sertifikat. Jika Anda memperbarui bagian mana pun dari nilai X.509 yang telah ditentukan sebelumnya, pembaruan akan mengganti seluruh kumpulan nilai X.509 yang telah ditentukan sebelumnya.

Jika tanda --copy-all-requested-extensions ditetapkan, semua ekstensi yang ditentukan dalam permintaan sertifikat akan disalin ke sertifikat yang ditandatangani.

Jika tanda --copy-extensions-by-oid ditetapkan, OID tertentu akan disalin dari permintaan sertifikat ke dalam sertifikat yang ditandatangani.

Jika tanda --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 berikut: base-key-usage, extended-key-usage, ca-options, policy-ids, atau aia-ocsp-servers.

Hapus tanda --copy-all-requested-extensions untuk mengabaikan semua ekstensi X.509 dalam permintaan sertifikat, tetapi tetap mempertahankan nilai standar 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 dihilangkan jika nilai tidak ditentukan:

  • keyUsage
  • policyIds
  • additionalExtensions
  • Kolom maxIssuerPathLength di ekstensi caOptions

Ekstensi berikut ditetapkan secara default ke false jika nilai tidak ditentukan:

  • Kolom isCa di ekstensi caOptions

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 guna menerbitkan sertifikat TLS server yang mengizinkan domain apa pun, gunakan petunjuk berikut:

  1. Buat file dengan nama leaf_server_tls_values.yaml dan 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: false
    
  2. Untuk hanya mengizinkan sertifikat dengan SAN jenis DNS, jalankan 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)"
    

    Untuk mengetahui informasi selengkapnya tentang perintah gcloud privateca templates create, lihat gcloud privateca templates create.

Sertifikat TLS server DNS dengan hanya domain pengujian

Untuk membuat template sertifikat guna menerbitkan sertifikat TLS server dengan SAN DNS yang terbatas untuk 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'))"

Isi file leaf_server_tls_values.yaml harus sama dengan contoh sebelumnya.

Untuk mengetahui informasi selengkapnya tentang penggunaan ekspresi CEL untuk memastikan nama DNS dimulai atau diakhiri dengan string tertentu, lihat Contoh ekspresi CEL.

Sertifikat Workload Identity

Untuk membuat template sertifikat guna menerbitkan sertifikat TLS (mTLS) bersama, gunakan petunjuk berikut:

  1. Buat file dengan nama leaf_mtls_values.yaml dan tambahkan konfigurasi TLS mufakat entitas akhir berikut ke dalamnya.

    leaf_mtls_values.yaml

    keyUsage:
      baseKeyUsage:
        digitalSignature: true
        keyEncipherment: true
      extendedKeyUsage:
        serverAuth: true
        clientAuth: true
    caOptions:
      isCa: false
    
  2. Untuk hanya mengizinkan sertifikat dengan SAN URI SPIFFE, gunakan perintah gcloud berikut:

    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 penggunaan 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 CA Service Certificate Template User (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 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