Meminta sertifikat menggunakan template sertifikat

Halaman ini menjelaskan cara meminta sertifikat menggunakan template sertifikat.

Template sertifikat memungkinkan Anda menerapkan kontrol kebijakan yang mendetail atas penerbitan sertifikat. Misalnya, Anda dapat menggunakan template sertifikat untuk menstandarkan penerbitan sertifikat TLS server di seluruh kumpulan CA dalam organisasi Anda. Atau, Anda dapat menggunakan template sertifikat untuk menerapkan kebijakan pada tingkat yang lebih terperinci, seperti kepada pengguna tertentu. Hal ini berguna dalam situasi saat Anda perlu membatasi jenis sertifikat yang dapat diberikan oleh individu yang berbeda. Anda juga dapat menggunakan kembali template untuk skenario penerbitan umum.

Sebelum memulai

  1. Menyiapkan lingkungan Anda untuk CA Service.

  2. Untuk mendapatkan izin yang Anda perlukan untuk menerbitkan sertifikat menggunakan template sertifikat, minta administrator untuk memberi Anda peran IAM Pengguna Template Sertifikat Layanan CA (roles/privateca.templateUser) di template sertifikat.

    Untuk mengetahui informasi selengkapnya tentang peran IAM yang telah ditetapkan untuk Layanan CA, lihat Kontrol akses dengan IAM.

    Untuk mengetahui informasi tentang cara memberikan peran IAM kepada akun utama, lihat Memberikan satu peran.

Penerbitan sertifikat pengujian

Sebelum menggunakan template sertifikat untuk meminta sertifikat yang ditandatangani, sebaiknya verifikasi kemampuan template sertifikat agar berhasil membuat sertifikat. Penerbitan sertifikat akan gagal jika ada konflik antara kebijakan penerbitan kumpulan CA dan kebijakan template sertifikat. Dengan menguji penerbitan, Anda dapat mengidentifikasi dan menyelesaikan konflik ini secara proaktif. Perlu diketahui bahwa sertifikat pengujian tidak dienkode dalam PEM, tidak ditandatangani, dan tidak dikenai biaya untuk pembuatan.

Untuk menguji penerbitan sertifikat menggunakan template sertifikat, ikuti langkah-langkah berikut:

Konsol

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

    Buka Certificate Authority Service

  2. Klik tab Pengelola Template.

  3. Klik template sertifikat yang ingin diuji. Halaman Template Details akan muncul.

  4. Untuk membuat permintaan pengujian, klik Buat sertifikat, lalu klik Uji penerbitan sertifikat. Formulir permintaan sertifikat akan muncul.

  5. Tentukan detail yang diperlukan untuk membuat permintaan sertifikat berikut:

    • Region: lokasi sertifikat. Ini harus sama dengan lokasi kumpulan CA.
    • Kumpulan CA: kumpulan CA yang bertanggung jawab untuk menerbitkan sertifikat.
    • Template sertifikat: template yang ingin Anda gunakan untuk penerbitan sertifikat.
    • Domain: nama domain situs yang ingin Anda amankan dengan sertifikat SSL atau TLS.
  6. Klik Buat sertifikat.

  7. Setelah sertifikat dibuat, klik Lihat. Sertifikat pengujian atau contoh ditampilkan di halaman yang sama di panel terpisah.

  8. Jika penerbitan sertifikat gagal karena konflik, selesaikan konflik, lalu kirim lagi permintaan sertifikat pengujian.

Menerbitkan sertifikat menggunakan template sertifikat

Untuk menerbitkan sertifikat yang ditandatangani menggunakan template sertifikat, lakukan hal berikut:

Konsol

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

    Buka Certificate Authority Service}

  2. Klik tab Pengelola Template.

  3. Di halaman Template sertifikat, klik template sertifikat yang ingin digunakan. Halaman Detail template akan muncul.

  4. Klik Buat sertifikat.

  5. Pilih wilayah. Region ini harus sama dengan region kumpulan CA yang ingin Anda gunakan.

  6. Pilih kumpulan CA.

  7. Untuk membuat sertifikat menggunakan Permintaan Penandatanganan Sertifikat (CSR), lihat Meminta sertifikat menggunakan CSR.

  8. Untuk membuat sertifikat menggunakan kunci yang dibuat secara otomatis, lihat Meminta sertifikat menggunakan kunci yang dibuat secara otomatis.

Buat sertifikat

  1. Klik Buat sertifikat. Jika sertifikat berhasil dibuat, pesan akan ditampilkan.
  2. Untuk melihat sertifikat yang dibuat, klik Lihat sertifikat, lalu klik Lihat.

Opsional: Download sertifikat yang ditandatangani

  1. Untuk mendownload rantai sertifikat yang dienkode ke PEM, klik Download rantai sertifikat.
  2. Untuk mendownload kunci pribadi terkait yang dienkode ke PEM, klik Download kunci pribadi.

gcloud

Untuk menerbitkan sertifikat menggunakan template sertifikat, tambahkan flag --template ke perintah gcloud privateca certificates create dalam format berikut:

--template=projects/PROJECT_ID/locations/LOCATION/certificateTemplates/CERTIFICATE_TEMPLATE

Ganti CERTIFICATE_TEMPLATE dengan nama template sertifikat yang ingin Anda gunakan untuk menerbitkan sertifikat ini. Template yang ditentukan harus berada di lokasi yang sama dengan kumpulan CA penerbit. Lihat contoh yang disediakan untuk membuat sertifikat DNS uji dan membuat sertifikat produksi untuk mengetahui informasi selengkapnya.

Terraform

/**
 * Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

resource "google_privateca_certificate_template" "template" {
  location    = "us-central1"
  name        = "my-certificate-template"
  description = "An updated sample certificate template"

  identity_constraints {
    allow_subject_alt_names_passthrough = true
    allow_subject_passthrough           = true

    cel_expression {
      description = "Always true"
      expression  = "true"
      location    = "any.file.anywhere"
      title       = "Sample expression"
    }
  }

  passthrough_extensions {
    additional_extensions {
      object_id_path = [1, 6]
    }

    known_extensions = ["EXTENDED_KEY_USAGE"]
  }

  predefined_values {
    additional_extensions {
      object_id {
        object_id_path = [1, 6]
      }

      value    = "c3RyaW5nCg=="
      critical = true
    }

    aia_ocsp_servers = ["string"]

    ca_options {
      is_ca                  = false
      max_issuer_path_length = 6
    }

    key_usage {
      base_key_usage {
        cert_sign          = false
        content_commitment = true
        crl_sign           = false
        data_encipherment  = true
        decipher_only      = true
        digital_signature  = true
        encipher_only      = true
        key_agreement      = true
        key_encipherment   = true
      }

      extended_key_usage {
        client_auth      = true
        code_signing     = true
        email_protection = true
        ocsp_signing     = true
        server_auth      = true
        time_stamping    = true
      }

      unknown_extended_key_usages {
        object_id_path = [1, 6]
      }
    }

    policy_ids {
      object_id_path = [1, 6]
    }
  }
}

resource "google_privateca_certificate_authority" "test_ca" {
  pool                     = "my-pool"
  certificate_authority_id = "my-certificate-authority-test-ca"
  location                 = "us-central1"
  deletion_protection      = false # set to true to prevent destruction of the resource
  config {
    subject_config {
      subject {
        organization = "HashiCorp"
        common_name  = "my-certificate-authority"
      }
      subject_alt_name {
        dns_names = ["hashicorp.com"]
      }
    }
    x509_config {
      ca_options {
        # is_ca *MUST* be true for certificate authorities
        is_ca = true
      }
      key_usage {
        base_key_usage {
          # cert_sign and crl_sign *MUST* be true for certificate authorities
          cert_sign = true
          crl_sign  = true
        }
        extended_key_usage {
          server_auth = false
        }
      }
    }
  }
  key_spec {
    algorithm = "RSA_PKCS1_4096_SHA256"
  }
}


resource "google_privateca_certificate" "default" {
  pool                  = "my-pool"
  location              = "us-central1"
  certificate_authority = google_privateca_certificate_authority.test_ca.certificate_authority_id
  lifetime              = "860s"
  name                  = "my-certificate-from-template"
  pem_csr               = tls_cert_request.example.cert_request_pem
  certificate_template  = google_privateca_certificate_template.template.id
}

resource "tls_private_key" "example" {
  algorithm = "RSA"
}

resource "tls_cert_request" "example" {
  private_key_pem = tls_private_key.example.private_key_pem

  subject {
    common_name  = "example.com"
    organization = "ACME Examples, Inc"
  }
}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Untuk membagikan link formulir permintaan sertifikat kepada orang lain di organisasi Anda agar mereka dapat meminta sertifikat menggunakan parameter yang sama, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka tab CA pool manager dan klik Share request form link.
  2. Di panel Share request form link yang muncul, pilih kumpulan CA dan template sertifikat yang Anda pilih untuk membuat permintaan. Link permintaan sertifikat akan ditampilkan.
  3. Salin link dan bagikan seperlunya.

Selesaikan konflik kebijakan

Permintaan sertifikat gagal dengan error argumen yang tidak valid saat ada konflik antara kebijakan penerbitan kumpulan CA dan template sertifikat. Misalnya, jika ekstensi yang sama (seperti penggunaan kunci dasar) ditetapkan dalam nilai dasar pengukuran kumpulan CA dan nilai yang telah ditetapkan pada template sertifikat. Atau, jika satu kebijakan memiliki batasan ekstensi yang mengecualikan ekstensi tertentu dan kebijakan lainnya menentukan nilai untuk ekstensi tersebut dalam nilai dasarnya.

Untuk melihat dan menyelesaikan konflik kebijakan, ikuti langkah-langkah berikut:

Konsol

  1. Klik link Pemecah masalah kebijakan penerbitan yang ditampilkan dengan pesan error. Halaman pemecah masalah akan muncul, tempat Anda dapat membandingkan nilai dasar pengukuran dan batasan ekstensi dalam kebijakan penerbitan kumpulan CA dengan nilai dasar pengukuran dan batasan ekstensi dalam kebijakan template sertifikat. Perhatikan bahwa konflik kebijakan ditandai.
  2. Akses kumpulan CA atau template sertifikat untuk memperbarui nilai yang bertentangan dan menyelesaikan konflik tersebut.
  3. Setelah konflik terselesaikan, kirim permintaan sertifikat lagi.

Melihat sertifikat yang diterbitkan menggunakan template

Untuk melihat sertifikat yang diterbitkan menggunakan template sertifikat, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka tab Template Manager.
  2. Klik template sertifikat yang telah Anda gunakan untuk penerbitan sertifikat.
  3. Di halaman Template Details, klik Certificates. Daftar sertifikat yang diterbitkan menggunakan template sertifikat yang dipilih akan ditampilkan.

Langkah selanjutnya