Menambahkan kebijakan penerbitan sertifikat ke kumpulan CA

Halaman ini menjelaskan cara menambahkan kebijakan penerbitan sertifikat ke kumpulan otoritas sertifikasi (CA).

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 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.

  • Buat 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 nilai dasar pengukuran

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

  1. Klik tombol.
  2. Klik Konfigurasi nilai dasar pengukuran.
Menentukan penggunaan kunci dasar

Anda dapat menggunakan setelan ini untuk mengonfigurasi cara kunci yang terdapat dalam sertifikat dapat digunakan. Opsi untuk penggunaan kunci mencakup enkripsi kunci, enkripsi data, penandatanganan sertifikat, penandatanganan CRL, dan lainnya.

Untuk informasi selengkapnya, lihat Penggunaan kunci.

Untuk menentukan penggunaan kunci dasar, lakukan hal berikut:

  1. Opsional: Di jendela yang muncul, klik tombol, jika Anda ingin menentukan penggunaan kunci dasar untuk sertifikat.
  2. Centang kotak untuk cara penggunaan kunci yang Anda inginkan.
  3. Pilih cara tingkat tinggi yang Anda inginkan untuk penggunaan kunci.
  4. Klik Berikutnya.
Menentukan penggunaan kunci yang diperpanjang

Anda dapat menggunakan setelan ini untuk memilih skenario yang lebih terperinci yang kuncinya terdapat dalam sertifikat dapat digunakan. Opsi tersebut mencakup autentikasi server, autentikasi klien, penandatanganan kode, perlindungan email, dan lainnya.

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

Untuk informasi selengkapnya, lihat Extended key usage.

Untuk menentukan penggunaan kunci yang diperpanjang, lakukan hal berikut:

  1. Opsional: Untuk menentukan penggunaan kunci yang diperpanjang untuk sertifikat yang diterbitkan kumpulan CA, klik tombol.
  2. Centang kotak untuk skenario penggunaan kunci yang diperpanjang.
  3. 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 identitas divalidasi sebelum penerbitan sertifikat, cara sertifikat dicabut, dan cara integritas kumpulan CA dipastikan. 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.

Untuk menambahkan server OCSP yang muncul di kolom ekstensi AIA dalam sertifikat, lakukan hal berikut. Prosedur berikut bersifat opsional.

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

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

  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.

Untuk menyimpan semua konfigurasi nilai dasar pengukuran, klik Done.

Mengonfigurasi batasan ekstensi

Untuk melarang semua ekstensi dari permintaan sertifikat agar tidak disertakan dalam sertifikat yang diterbitkan, klik tombol.

Setelah mengklik tombol, Anda akan melihat kolom Ekstensi sertifikat yang diketahui yang dapat Anda gunakan untuk memilih ekstensi sertifikat. Untuk memilih ekstensi sertifikat, lakukan hal berikut:

  1. Opsional: Klik kolom Known certificate extensions, lalu hapus ekstensi yang tidak diperlukan dari menu.
  2. Opsional: Di kolom Custom extensions, tambahkan ID objek untuk ekstensi yang ingin disertakan dalam sertifikat yang diterbitkan oleh kumpulan CA.
Mengonfigurasi batasan identitas

Untuk mengonfigurasi batasan pada subjek dan SAN dalam sertifikat yang dikeluarkan 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 menerapkan pembatasan pada subjek sertifikat. Untuk informasi selengkapnya, lihat Menggunakan CEL.
  4. Klik Berikutnya.

Untuk mempelajari cara mengonfigurasi parameter tambahan dalam kebijakan penerbitan sertifikat, lihat IssuancePolicy.

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.

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

    identityConstraints:
      allowSubjectPassthrough: true
      allowSubjectAltNamesPassthrough: true
    

    Dengan keterangan:

    • Kolom allowSubjectPassthrough wajib diisi. Jika kolom allowSubjectPassthrough ditetapkan ke true, kolom subjek akan disalin dari permintaan sertifikat ke sertifikat yang ditandatangani. Jika tidak, Subjek yang diminta akan dihapus.
    • Jika kolom allowSubjectAltNamesPassthrough ditetapkan 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 pada 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 pools update.

Batasan yang didukung

Layanan CA mendukung batasan kebijakan penerbitan berikut. Anda dapat menggabungkan batasan berikut sesuai kebutuhan 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 diterbitkannya, menimpa nilai yang diminta, dengan menggunakan kolom baseline_values.

Nilai baseline_values dari 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 menggantikan 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) 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 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 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 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 diawali 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 dan nilai kustom tertentu.

    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 yang terakhir tidak memerlukan bukti kepemilikan kunci pribadi terkait. Anda dapat menetapkan batasan ini menggunakan kolom allowedIssuanceModes.

Untuk 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) 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 elips berikut:

  • EC_SIGNATURE_ALGORITHM_UNSPECIFIED - Algoritma tanda tangan apa pun dapat digunakan.
  • ECDSA_P256 - Tanda Tangan Digital Kurva Eliptik pada kurva P-256 NIST.
  • 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 selanjutnya