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 Anda. Misalnya, Anda dapat menggunakan template sertifikat untuk menstandardisasi 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 dikeluarkan oleh individu yang berbeda. Anda juga dapat menggunakan kembali template untuk skenario penerbitan umum.

Sebelum memulai

  1. Siapkan lingkungan Anda untuk Layanan CA.

  2. Untuk mendapatkan izin yang diperlukan untuk menerbitkan sertifikat menggunakan template sertifikat, minta administrator Anda untuk memberi Anda peran IAM CA Service Certificate Template User (roles/privateca.templateUser) di template sertifikat.

    Untuk mengetahui informasi selengkapnya tentang peran IAM bawaan untuk CA Service, 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 verifikasi 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 bertanda tangan, 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 sampel ditampilkan di halaman yang sama dalam panel terpisah.

  8. Jika penerbitan sertifikat gagal karena konflik, selesaikan konflik, lalu kirimkan permintaan sertifikat uji coba lagi.

Menerbitkan sertifikat menggunakan template sertifikat

Untuk menerbitkan sertifikat bertanda tangan 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 pool 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 berenkode PEM, klik Download certificate chain.
  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 ingin Anda gunakan untuk menerbitkan sertifikat ini. Template yang ditentukan harus berada di lokasi yang sama dengan kumpulan CA penerbit. Lihat contoh yang diberikan 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 dapat 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 hal berikut:

Konsol

  1. Di konsol Google Cloud , buka tab CA pool manager, lalu 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 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