Men-deploy sertifikat global yang dikelola Google dengan Certificate Authority Service

Tutorial ini menunjukkan cara menggunakan Certificate Manager untuk men-deploy sertifikat global yang dikelola Google dengan Certificate Authority Service.

Load balancer global berikut mendukung sertifikat yang dikelola Google dengan Certificate Authority Service:

  • Load Balancer Aplikasi eksternal global
  • Load Balancer Aplikasi klasik
  • Load Balancer Jaringan proxy eksternal global
  • Load Balancer Jaringan proxy klasik

Jika Anda ingin men-deploy ke load balancer lintas region atau load balancer regional, lihat referensi berikut:

Tujuan

Tutorial ini menunjukkan kepada Anda cara menyelesaikan tugas-tugas berikut:

  • Buat sertifikat yang dikelola Google dengan CA Service menggunakan Certificate Manager.
  • Deploy sertifikat ke load balancer yang didukung menggunakan proxy HTTPS target.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager, Certificate Authority APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine, Certificate Manager, Certificate Authority APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. Aktifkan CA Service API.
  15. Buat kumpulan CA. Anda harus membuat dan mengaktifkan minimal satu CA di kumpulan CA ini.

Anda perlu mencatat hal berikut sebelum mengikuti langkah-langkah tutorial ini:

  • Sertifikat yang Anda buat dengan Certificate Authority Service tidak dipercaya secara publik. Untuk menerbitkan sertifikat tepercaya publik, buat sertifikat dengan otorisasi DNS atau otorisasi load balancer.
  • Jika kebijakan penerbitan sertifikat berlaku di kumpulan CA target, penyediaan sertifikat mungkin gagal karena salah satu alasan berikut:

    • Kebijakan penerbitan sertifikat telah memblokir sertifikat yang diminta. Dalam hal ini, Anda tidak akan ditagih karena sertifikat belum diterbitkan.
    • Kebijakan telah menerapkan perubahan pada sertifikat yang tidak didukung oleh Certificate Manager. Dalam hal ini, Anda akan ditagih karena sertifikat telah diterbitkan, meskipun tidak sepenuhnya kompatibel dengan Certificate Manager.
  • Untuk memastikan kompatibilitas, konfigurasikan kebijakan penerbitan sertifikat kumpulan CA target untuk mengizinkan sertifikat TLS server entity akhir (leaf).

  • Sertifikat TLS global yang dikelola Google dapat dikonfigurasi untuk diterbitkan dari kumpulan CA di region mana pun.

Peran yang diperlukan

Pastikan Anda memiliki peran berikut untuk menyelesaikan tugas dalam tutorial ini:

  • Certificate Manager Owner (roles/certificatemanager.owner)

    Diperlukan untuk membuat dan mengelola resource Certificate Manager.

  • Compute Load Balancer Admin (roles/compute.loadBalancerAdmin) atau Compute Network Admin (roles/compute.networkAdmin)

    Diperlukan untuk membuat dan mengelola proxy target HTTPS.

  • Admin Layanan CA (roles/privateca.admin)

    Diperlukan untuk melakukan tindakan dalam CA Service.

Untuk informasi selengkapnya, lihat referensi berikut:

Membuat load balancer

Tutorial ini mengasumsikan bahwa Anda telah membuat dan mengonfigurasi backend, health check, layanan backend, dan peta URL load balancer. Jika Anda telah membuat Load Balancer Aplikasi eksternal, catat nama peta URL karena Anda akan memerlukannya nanti dalam tutorial ini.

Jika Anda belum membuat load balancer, lihat halaman berikut untuk membuatnya:

Mengonfigurasi integrasi CA Service dengan Certificate Manager

Untuk mengintegrasikan CA Service dengan Certificate Manager, ikuti langkah-langkah berikut:

  1. Di project Google Cloud target, buat akun layanan Certificate Manager:

    gcloud beta services identity create --service=certificatemanager.googleapis.com \
        --project=PROJECT_ID
    

    Ganti PROJECT_ID dengan ID projectGoogle Cloud target.

    Perintah ini menampilkan nama identitas layanan yang dibuat. Lihat contoh berikut:

    service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
    
  2. Berikan akun layanan Certificate Manager peran CA Service Certificate Requester (roles/privateca.certificateRequester) dalam kumpulan CA target:

    gcloud privateca pools add-iam-policy-binding CA_POOL \
        --location LOCATION \
        --member "serviceAccount:SERVICE_ACCOUNT" \
        --role roles/privateca.certificateRequester
    

    Ganti kode berikut:

    • CA_POOL: ID kumpulan CA target.
    • LOCATION: lokasi Google Cloud target.
    • SERVICE_ACCOUNT: nama lengkap akun layanan yang Anda buat di langkah 1.
  3. Buat resource konfigurasi penerbitan sertifikat untuk kumpulan CA Anda:

    Konsol

    1. Di konsol Google Cloud , buka tab Issuance configs di halaman Certificate Manager.

      Buka Certificate Manager

    2. Klik Create. Halaman Create a Certificate Issuance Config akan muncul.

    3. Di kolom Name, masukkan nama unik untuk konfigurasi penerbitan sertifikat.

    4. Opsional: Di kolom Description, masukkan deskripsi untuk konfigurasi penerbitan.

    5. Untuk Location, pilih Global.

    6. Opsional: Di kolom Lifetime, tentukan masa berlaku sertifikat yang diterbitkan dalam hari. Nilai harus antara 21 hingga 30 hari (inklusif).

    7. Opsional: Di Rotation window percentage, tentukan persentase masa aktif sertifikat saat proses perpanjangannya dimulai. Untuk menemukan rentang nilai yang valid, lihat Persentase masa aktif dan periode rotasi.

    8. Opsional: Dari daftar Algoritma kunci, pilih algoritma kunci yang akan digunakan saat membuat kunci pribadi.

    9. Dari daftar CA pool, pilih nama kumpulan CA yang akan ditetapkan ke resource konfigurasi penerbitan sertifikat ini.

    10. Di kolom Labels, tentukan label yang akan dikaitkan dengan sertifikat. Untuk menambahkan label, klik Tambahkan label, lalu tentukan kunci dan nilai untuk label Anda.

    11. Klik Create.

    gcloud

    gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
        --ca-pool=CA_POOL
    

    Ganti kode berikut:

    • ISSUANCE_CONFIG_NAME: nama resource konfigurasi penerbitan sertifikat.
    • CA_POOL: jalur resource lengkap dan nama kumpulan CA yang ingin Anda tetapkan ke resource konfigurasi penerbitan sertifikat ini.

    Untuk mengetahui informasi selengkapnya tentang resource konfigurasi penerbitan sertifikat, lihat Mengelola resource konfigurasi penerbitan sertifikat.

Membuat sertifikat yang dikelola Google yang diterbitkan oleh instance CA Service Anda

Untuk membuat sertifikat yang dikelola Google yang diterbitkan oleh instance CA Service Anda, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Certificate Manager.

    Buka Certificate Manager

  2. Di tab Certificates, klik Add Certificate.

  3. Di kolom Certificate name, masukkan nama unik untuk sertifikat.

  4. Opsional: Di kolom Description, masukkan deskripsi untuk sertifikat. Deskripsi ini memungkinkan Anda mengidentifikasi sertifikat.

  5. Untuk Location, pilih Global.

  6. Untuk Scope, pilih Default.

  7. Untuk Certificate type, pilih Create Google-managed certificate.

  8. Untuk Certificate Authority type, pilih Private.

  9. Di kolom Domain Names, tentukan daftar nama domain sertifikat yang dipisahkan koma. Setiap nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, seperti myorg.example.com.

  10. Untuk Select a certificate issuance config, pilih nama resource konfigurasi penerbitan sertifikat yang merujuk ke kumpulan CA target.

  11. Di kolom Labels, tentukan label yang akan dikaitkan dengan sertifikat. Untuk menambahkan label, klik Tambahkan label, lalu tentukan kunci dan nilai untuk label Anda.

  12. Klik Create.

    Sertifikat baru akan muncul dalam daftar sertifikat.

gcloud

Untuk membuat sertifikat global yang dikelola Google dengan Certificate Authority Service, gunakan perintah certificate-manager certificates create dengan flag issuance-config:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    --issuance-config=ISSUANCE_CONFIG_NAME

Ganti kode berikut:

  • CERTIFICATE_NAME: nama sertifikat.
  • DOMAIN_NAME: nama domain target. Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, seperti myorg.example.com.
  • ISSUANCE_CONFIG_NAME: nama resource konfigurasi penerbitan sertifikat yang merujuk ke kumpulan CA target.

API

Buat sertifikat dengan membuat permintaan POST ke metode certificates.create sebagai berikut:

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME"
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
  "issuanceConfig": "ISSUANCE_CONFIG_NAME",
 }
}

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud Anda.
  • CERTIFICATE_NAME: nama sertifikat.
  • DOMAIN_NAME: nama domain target. Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, seperti myorg.example.com.
  • ISSUANCE_CONFIG_NAME: nama resource konfigurasi penerbitan sertifikat yang merujuk ke kumpulan CA target.

Memverifikasi status sertifikat

Sebelum men-deploy sertifikat ke load balancer, pastikan sertifikat tersebut aktif. Diperlukan waktu beberapa menit agar status sertifikat berubah menjadi ACTIVE.

Konsol

  1. Di konsol Google Cloud , buka halaman Certificate Manager.

    Buka Certificate Manager

  2. Di tab Sertifikat, periksa kolom Status untuk sertifikat.

gcloud

Untuk memverifikasi status sertifikat, jalankan perintah berikut:

gcloud certificate-manager certificates describe CERTIFICATE_NAME

Ganti CERTIFICATE_NAME dengan nama sertifikat target yang dikelola Google.

Outputnya mirip dengan hal berikut ini:

createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
  domains:
  - myorg.example.com
  issuanceConfig: projects/myproject/locations/global/issuanceConfigs/myissuanceConfig
  state: ACTIVE
name: projects/myproject/locations/global/certificates/mycertificate
pemCertificate: |
  -----BEGIN CERTIFICATE-----
  [...]
  -----END CERTIFICATE-----
sanDnsnames:
  - myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Untuk mengetahui langkah pemecahan masalah lainnya, lihat Memecahkan masalah Certificate Manager.

Men-deploy sertifikat ke load balancer

Untuk men-deploy sertifikat global yang dikelola Google, gunakan peta sertifikat.

Buat peta sertifikat

Buat peta sertifikat yang merujuk ke entri peta sertifikat yang terkait dengan sertifikat Anda:

gcloud

Untuk membuat peta sertifikat, gunakan perintah gcloud certificate-manager maps create:

gcloud certificate-manager maps create CERTIFICATE_MAP_NAME

Ganti CERTIFICATE_MAP_NAME dengan nama peta sertifikat target.

Terraform

Untuk membuat peta sertifikat, Anda dapat menggunakan resource google_certificate_manager_certificate_map.

resource "google_certificate_manager_certificate_map" "certificate_map" {
  name        = "${local.name}-certmap-${random_id.tf_prefix.hex}"
  description = "${local.domain} certificate map"
  labels = {
    "terraform" : true
  }
}

Membuat entri peta sertifikat

Buat entri peta sertifikat, lalu kaitkan dengan sertifikat dan peta sertifikat Anda:

gcloud

Untuk membuat entri peta sertifikat, gunakan perintah gcloud certificate-manager maps entries create:

gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME" \
    --certificates="CERTIFICATE_NAME" \
    --hostname="HOSTNAME"

Ganti kode berikut:

  • CERTIFICATE_MAP_ENTRY_NAME: nama entri peta sertifikat.
  • CERTIFICATE_MAP_NAME: nama peta sertifikat yang terkait dengan entri peta sertifikat.
  • CERTIFICATE_NAME: nama sertifikat yang ingin Anda kaitkan dengan entri peta sertifikat.
  • HOSTNAME: nama host yang ingin Anda kaitkan dengan entri peta sertifikat.

    Jika Anda ingin membuat sertifikat yang mencakup domain karakter pengganti dan domain root, tentukan nama host dengan root dan karakter pengganti, seperti example.com dan *.example.com. Selain itu, Anda harus menentukan dua entri peta sertifikat - satu untuk example.com dan satu lagi untuk *.example.com.

Terraform

Untuk membuat entri peta sertifikat dengan domain root, gunakan resource google_certificate_manager_certificate_map_entry.

resource "google_certificate_manager_certificate_map_entry" "first_entry" {
  name        = "${local.name}-first-entry-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.certificate_map.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.root_cert.id]
  hostname     = local.domain
}

Untuk membuat entri peta sertifikat dengan domain karakter pengganti, gunakan resource google_certificate_manager_certificate_map_entry.

resource "google_certificate_manager_certificate_map_entry" "second_entry" {
  name        = "${local.name}-second-entity-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.certificate_map.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.root_cert.id]
  hostname     = "*.${local.domain}"
}

Memastikan bahwa entri peta sertifikat aktif

Pastikan entri peta sertifikat aktif sebelum melampirkan peta sertifikat yang sesuai ke proxy target.

Untuk memverifikasi entri peta sertifikat, gunakan perintah gcloud certificate-manager maps entries describe:

gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME"

Ganti kode berikut:

  • CERTIFICATE_MAP_ENTRY_NAME: nama entri peta sertifikat.
  • CERTIFICATE_NAME: nama sertifikat yang ingin Anda kaitkan dengan entri peta sertifikat.

Outputnya mirip dengan hal berikut ini:

certificates:
createTime: '2021-09-06T10:01:56.229472109Z'
hostname: example.com
name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry
state: ACTIVE
updateTime: '2021-09-06T10:01:58.277031787Z'

Melampirkan peta sertifikat ke proxy target

Anda dapat melampirkan peta sertifikat ke proxy target baru atau proxy target yang sudah ada.

Konsol

Jika proxy target adalah bagian dari load balancer yang ada, Anda dapat melampirkan peta sertifikat dengan mengedit konfigurasi frontend load balancer.

  1. Di konsol Google Cloud , buka halaman Load balancing.

    Buka Load balancing

  2. Klik nama load balancer yang ingin Anda perbarui, lalu klik Edit.

  3. Klik Frontend configuration, lalu pilih konfigurasi alamat IP dan port frontend yang ingin Anda edit.

  4. Jika Choose certificate repository muncul, pilih Use certificate map.

  5. Dalam daftar Select a certificate map, pilih peta sertifikat Anda.

  6. Klik Done, lalu klik Update.

gcloud

Untuk melampirkan peta sertifikat ke proxy target baru, gunakan perintah gcloud compute target-https-proxies create:

gcloud compute target-https-proxies create PROXY_NAME \
    --certificate-map="CERTIFICATE_MAP_NAME" \
    --url-map="URL_MAP" \
    --global

Ganti kode berikut:

  • PROXY_NAME: nama proxy target.
  • CERTIFICATE_MAP_NAME: nama peta sertifikat yang merujuk pada entri peta sertifikat dan sertifikat terkait.
  • URL_MAP: nama peta URL

Untuk melampirkan peta sertifikat ke proxy HTTPS target yang ada, gunakan perintah gcloud compute target-https-proxies update. Jika Anda tidak mengetahui nama proxy target yang ada, buka halaman Target proxies dan catat nama proxy target.

gcloud compute target-https-proxies update PROXY_NAME \
    --certificate-map="CERTIFICATE_MAP_NAME" \
    --global

Setelah membuat atau mengupdate proxy target, jalankan perintah berikut untuk memverifikasinya:

gcloud compute target-https-proxies list

Terraform

Untuk melampirkan peta sertifikat ke proxy target, Anda dapat menggunakan resource google_compute_target_https_proxy.

Saat mengonfigurasi proxy target, jika Anda melampirkan sertifikat TLS (SSL) secara langsung dan juga melalui peta sertifikat, proxy akan menggunakan sertifikat yang direferensikan oleh peta sertifikat dan mengabaikan sertifikat TLS (SSL) yang dilampirkan secara langsung.

Memecahkan masalah sertifikat yang diterbitkan oleh CA Service

Untuk mengetahui langkah-langkah pemecahan masalah, lihat Masalah terkait sertifikat yang diterbitkan oleh instance CA Service.

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan dalam tutorial ini, hapus resource tersebut.

  1. Hapus load balancer dan resource-nya.

    Lihat Membersihkan penyiapan load balancing.

  2. Hapus atau lepaskan peta sertifikat dari proxy.

    Untuk menghapus peta sertifikat, jalankan perintah berikut:

    gcloud compute target-https-proxies delete PROXY_NAME
    

    Jika Anda ingin mempertahankan proxy HTTPS target, lepaskan peta sertifikat dari proxy.

    • Jika ada sertifikat TLS (SSL) yang terpasang langsung ke proxy, melepas peta sertifikat akan menyebabkan proxy kembali menggunakan sertifikat TLS (SSL) yang terpasang langsung tersebut.
    • Jika tidak ada sertifikat TLS (SSL) yang dilampirkan langsung ke proxy, peta sertifikat tidak dapat dilepas dari proxy. Anda harus melampirkan setidaknya satu sertifikat TLS (SSL) langsung ke proxy terlebih dahulu sebelum dapat melepaskan peta sertifikat.

    Untuk melepaskan peta sertifikat, jalankan perintah berikut:

    gcloud compute target-https-proxies update PROXY_NAME \
        --clear-certificate-map
    

    Ganti PROXY_NAME dengan nama proxy target.

  3. Hapus entri peta sertifikat dari peta sertifikat:

    gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \
        --map="CERTIFICATE_MAP_NAME"
    

    Ganti kode berikut:

    • CERTIFICATE_MAP_ENTRY_NAME: nama entri peta sertifikat.
    • CERTIFICATE_MAP_NAME: nama peta sertifikat.
  4. Hapus peta sertifikat:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    Ganti CERTIFICATE_MAP_NAME dengan nama peta sertifikat.

  5. Hapus sertifikat yang dikelola Google:

    Konsol

    1. Di konsol Google Cloud , buka halaman Certificate Manager.

      Buka Certificate Manager

    2. Di tab Certificates, centang kotak sertifikat.

    3. Klik Hapus.

    4. Pada dialog yang muncul, klik Hapus untuk mengonfirmasi.

    gcloud

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    Ganti CERTIFICATE_NAME dengan nama sertifikat target.

  6. Hapus resource konfigurasi penerbitan sertifikat:

    Konsol

    1. Di konsol Google Cloud , buka tab Issuance configs di halaman Certificate Manager.

      Buka Certificate Manager

    2. Pilih kotak centang resource konfigurasi penerbitan yang ingin Anda hapus.

    3. Klik Hapus.

    4. Pada dialog yang muncul, klik Hapus untuk mengonfirmasi.

    gcloud

     gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
     

    Ganti ISSUANCE_CONFIG_NAME dengan nama resource konfigurasi penerbitan sertifikat target.

  7. Hapus kumpulan CA.

    Untuk menghapus kumpulan CA, atau untuk menonaktifkan CA terakhir yang diaktifkan dalam kumpulan CA yang direferensikan oleh resource konfigurasi penerbitan sertifikat, hapus semua resource konfigurasi penerbitan sertifikat yang mereferensikan kumpulan CA. Untuk mengetahui informasi selengkapnya, lihat Menghapus kumpulan CA.

Langkah berikutnya