Meminta sertifikat menggunakan template sertifikat

Halaman ini menjelaskan cara meminta sertifikat menggunakan template sertifikat.

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

Sebelum memulai

  1. Menyiapkan lingkungan Anda untuk Layanan CA.

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

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

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

Menguji penerbitan sertifikat

Sebelum menggunakan template sertifikat untuk meminta sertifikat yang ditandatangani, sebaiknya Anda memverifikasi kemampuan template sertifikat untuk berhasil membuat sertifikat. Penerbitan sertifikat 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. Perhatikan bahwa sertifikat pengujian tidak dienkode PEM, tidak ditandatangani, dan tidak dikenai biaya untuk pembuatannya.

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 Anda uji. 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 berikut yang diperlukan untuk membuat permintaan sertifikat:

    • Region: lokasi sertifikat. Lokasi 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 kirimkan 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 Anda gunakan. Halaman Template details 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 Pendaftaran 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 dihasilkan, klik Lihat sertifikat, lalu klik Lihat.

Opsional: Mendownload sertifikat yang ditandatangani

  1. Untuk mendownload rantai sertifikat yang dienkode PEM, klik Download certificate chain.
  2. Untuk mendownload kunci pribadi yang dienkode PEM yang terkait, 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 pengujian 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.

Permintaan sertifikat mungkin gagal jika konflik kebijakan terdeteksi antara kebijakan penerbitan kumpulan CA dan template sertifikat. Jika hal ini terjadi, Anda harus menyelesaikan konflik kebijakan sebelum dapat mengirimkan permintaan sertifikat lagi.

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

Konsol

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

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 berikutnya