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.

  • Membuat kumpulan CA.

Menambahkan file kebijakan penerbitan sertifikat

Untuk menambahkan kebijakan penerbitan sertifikat ke kumpulan CA yang ada, lakukan hal berikut:

Konsol

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

    Buka Certificate Authority Service

  2. Di halaman Pengelola kumpulan CA, klik nama kumpulan CA yang ingin Anda tambahkan kebijakan penerbitan sertifikat.

  3. Di halaman CA pool, klik Edit.

Mengonfigurasi batasan identitas

Untuk mengonfigurasi batasan pada subjek dan SAN di sertifikat yang diterbitkan oleh kumpulan CA, lakukan hal berikut:

  1. Opsional: Untuk melarang subjek dalam permintaan sertifikat diteruskan, klik tombol.
  2. Opsional: Untuk melarang nama alternatif subjek dalam permintaan sertifikat diteruskan, klik tombol.
  3. Opsional: Tambahkan ekspresi Common Expression Language (CEL) untuk membatasi subjek sertifikat. Untuk informasi selengkapnya, lihat Menggunakan CEL.
  4. Klik Next.
Mengonfigurasi batasan ekstensi

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:

  1. Opsional: Klik kolom Known certificate extensions, lalu hapus ekstensi yang tidak diperlukan dari menu.
  2. Opsional: Di kolom Ekstensi kustom, tambahkan ID objek untuk ekstensi yang ingin Anda sertakan dalam sertifikat yang diterbitkan oleh kumpulan CA.
Mengonfigurasi nilai dasar pengukuran

Untuk mengonfigurasi nilai dasar pengukuran dalam sertifikat yang diterbitkan dari kumpulan CA, lakukan hal berikut:

  1. Klik tombol.
  2. Klik Configure baseline values.
Menentukan penggunaan kunci dasar

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:

  1. Opsional: Di jendela yang muncul, klik tombolnya, jika Anda ingin menentukan penggunaan kunci dasar untuk sertifikat.
  2. Pilih kotak centang sesuai cara penggunaan kunci yang Anda inginkan.
  3. Pilih cara tingkat tinggi yang Anda inginkan untuk menggunakan kunci.
  4. Klik Next.
Menentukan penggunaan kunci yang diperpanjang

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:

  1. Opsional: Klik tombol untuk menentukan penggunaan kunci yang diperpanjang untuk sertifikat yang diterbitkan oleh kumpulan CA.
  2. Pilih kotak centang untuk skenario penggunaan kunci yang diperpanjang.
  3. Klik Next.
Menentukan ID kebijakan

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:

  1. Opsional: Tambahkan ID kebijakan di kolom ID kebijakan.
  2. 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 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.

  1. Opsional: Klik Tambahkan item.
  2. Di kolom URL Server, tambahkan URL server OCSP.
  3. Klik Done.
  4. Klik Next.
Mengonfigurasi ekstensi tambahan

Untuk mengonfigurasi ekstensi kustom tambahan agar disertakan dalam sertifikat yang diterbitkan oleh kumpulan CA, lakukan hal berikut. Prosedur berikut bersifat opsional.

  1. Klik Tambahkan item.
  2. Di kolom Object identifier, tambahkan ID objek valid yang diformat sebagai digit yang dipisahkan titik.
  3. Di kolom Nilai, tambahkan nilai yang dienkode base64 untuk ID.
  4. 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.

  1. Dengan Cloud Shell Editor, buat file policy.yaml dengan konten berikut:

    identityConstraints:
      allowSubjectPassthrough: true
      allowSubjectAltNamesPassthrough: true
    

    Dengan keterangan:

    • Kolom allowSubjectPassthrough wajib diisi. Jika kolom allowSubjectPassthrough disetel ke true, kolom subjek akan disalin dari permintaan sertifikat ke dalam sertifikat yang ditandatangani. Jika tidak, Subjek yang diminta akan dibuang.
    • Jika kolom allowSubjectAltNamesPassthrough disetel ke true, ekstensi SubjectAltNames akan disalin dari permintaan sertifikat ke sertifikat yang ditandatangani. Jika tidak, SubjectAltNames yang diminta akan dihapus.
  2. 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 dengan spiffe://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