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 Anda. 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 pada tingkat yang lebih terperinci, seperti untuk pengguna tertentu. Hal ini berguna dalam situasi ketika 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 CA Service.

  2. Untuk mendapatkan izin yang Anda perlukan untuk menerbitkan sertifikat menggunakan {i>template<i} sertifikat, minta administrator untuk memberi Anda CA Service Certificate Template User (roles/privateca.templateUser) Peran IAM pada template sertifikat.

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

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

Penerbitan sertifikat pengujian

Sebelum menggunakan template sertifikat untuk meminta sertifikat yang ditandatangani, sebaiknya Anda memverifikasi kemampuan template sertifikat agar berhasil membuat CA {i>root<i}. Penerbitan sertifikat gagal saat terdapat konflik antara CA kebijakan penerbitan kumpulan umum dan kebijakan template sertifikat. Dengan menguji penerbitan, Anda dapat secara proaktif mengidentifikasi dan menyelesaikan konflik ini. Perlu diketahui bahwa sertifikat pengujian tidak dienkode PEM, tidak ditandatangani, dan tidak dikenakan 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 Penerbitan sertifikat pengujian. 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.
    • CA pool: kumpulan CA yang bertanggung jawab untuk menerbitkan sertifikat.
    • Template sertifikat: template yang ingin Anda gunakan untuk sertifikat yang diterbitkan.
    • Domain: nama domain situs yang ingin Anda amankan dengan SSL atau TLS.
  6. Klik Buat sertifikat.

  7. Setelah sertifikat dibuat, klik Lihat. Pengujian atau sampel sertifikat akan ditampilkan di laman yang sama dalam panel terpisah.

  8. Jika penerbitan sertifikat gagal karena benturan, selesaikan konflik tersebut, dan kirimkan ujian permintaan sertifikat kembali.

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 Certificate templates, klik template sertifikat yang ingin digunakan. Halaman Detail template akan muncul.

  4. Klik Buat sertifikat.

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

  6. Pilih kumpulan CA.

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

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

Membuat sertifikat

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

Opsional: Mendownload sertifikat yang ditandatangani

  1. Untuk mendownload rantai sertifikat berenkode PEM, klik Download rantai sertifikat.
  2. Untuk mendownload kunci pribadi berenkode PEM 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 yang ingin Anda gunakan untuk menerbitkan sertifikat ini. Template yang ditentukan harus ada dalam lokasi yang sama dengan kumpulan CA penerbit. Lihat contoh yang diberikan untuk membuat sertifikat DNS pengujian dan membuat sertifikat produksi untuk 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 agar mereka dapat meminta sertifikat menggunakan parameter yang sama, lakukan hal 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. Tujuan link permintaan sertifikat akan ditampilkan.
  3. Salin link dan bagikan sesuai kebutuhan.

Selesaikan konflik kebijakan

Permintaan sertifikat gagal dengan error argumen yang tidak valid saat terjadi konflik antara kebijakan penerbitan kumpulan CA dan template sertifikat. Misalnya, jika ekstensi yang sama (seperti penggunaan kunci dasar) ditentukan dalam atribut kumpulan CA dan nilai standar template sertifikat. Atau ketika 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 diselesaikan, kirimkan lagi permintaan sertifikat.

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

Langkah selanjutnya