Men-deploy sertifikat global yang dikelola Google dengan otorisasi load balancer


Tutorial ini menunjukkan cara menggunakan Pengelola Sertifikat untuk men-deploy sertifikat global yang dikelola Google dengan otorisasi load balancer.

Otorisasi load balancer adalah metode paling efisien untuk mendapatkan sertifikat yang dikelola Google. Tindakan ini akan menjaga konfigurasi DNS Anda tetap bersih dan menyediakan sertifikat TLS setelah konfigurasi selesai.

Load balancer berikut mendukung sertifikat yang dikelola Google dengan otorisasi load balancer:

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

Tujuan

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

  • Buat sertifikat yang dikelola Google yang diterbitkan oleh Certificate Authority (CA) yang dipercaya secara publik dengan otorisasi load balancer menggunakan Pengelola Sertifikat.
  • Deploy sertifikat ke load balancer yang didukung menggunakan proxy HTTPS target.

Jika Anda men-deploy sertifikat ke domain produksi, traffic akan terganggu sejenak saat sertifikat disiapkan dan diaktifkan di load balancer.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

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

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Compute Engine, Certificate Manager APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

Peran yang diperlukan

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

  • Pemilik Pengelola Sertifikat (roles/certificatemanager.owner): Wajib untuk membuat dan mengelola resource Pengelola Sertifikat.
  • Compute Load Balancer Admin (roles/compute.loadBalancerAdmin) atau Compute Network Admin (roles/compute.networkAdmin): Diperlukan untuk membuat dan mengelola proxy target HTTPS.
  • DNS Administrator (roles/dns.admin): Wajib jika Anda ingin menggunakan Cloud DNS sebagai solusi DNS Anda.

Untuk informasi selengkapnya, lihat referensi berikut:

Nama domain

Untuk membuat sertifikat, dapatkan nama domain yang sepenuhnya memenuhi syarat (FQDN) dari domain yang Anda miliki. Jika tidak memiliki domain, Anda dapat menggunakan Cloud Domains untuk mendaftarkan domain.

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 memerlukannya nanti dalam tutorial ini.

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

Membuat sertifikat yang dikelola Google dengan otorisasi load balancer

Untuk membuat sertifikat yang dikelola Google dengan otorisasi load balancer, lakukan langkah berikut:

Konsol

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

    Buka Certificate Manager

  2. Di tab Certificates, klik Add Certificate.

  3. Di kolom Nama sertifikat, masukkan nama unik untuk sertifikat.

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

  5. Untuk Location, pilih Global.

  6. Untuk Cakupan, pilih Default.

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

  8. Untuk Jenis Certificate Authority, pilih Publik.

  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 Authorization type, pilih Load balancer authorization.

  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 otorisasi load balancer, gunakan perintah certificate-manager certificates create:

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

Ganti kode berikut:

  • CERTIFICATE_NAME: nama sertifikat.
  • DOMAIN_NAMES: daftar domain target yang dipisahkan koma. Setiap nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, seperti myorg.example.com.

Terraform

Gunakan resource google_certificate_manager_certificate.

resource "google_certificate_manager_certificate" "default" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "Cert with LB authorization"
  managed {
    domains = [local.domain]
  }
  labels = {
    "terraform" : true
  }
}

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

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"],
 }
}

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud.
  • CERTIFICATE_NAME: nama sertifikat.
  • DOMAIN_NAMES: daftar domain target yang dipisahkan koma. Setiap nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, seperti myorg.example.com.

Men-deploy sertifikat ke load balancer

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

Membuat peta sertifikat

Buat peta sertifikat yang mereferensikan 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 dan 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 tempat entri peta sertifikat dilampirkan.
  • 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 membuat sertifikat dengan domain karakter pengganti, tentukan juga nama host dengan karakter pengganti, seperti *.example.com.

Terraform

Untuk membuat entri peta sertifikat, Anda dapat menggunakan 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
}

Memverifikasi 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 ada.

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 mereferensikan 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 Proxy target dan catat nama proxy target.

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

Setelah membuat atau memperbarui 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 dirujuk oleh peta sertifikat dan mengabaikan sertifikat TLS (SSL) yang dilampirkan secara langsung.

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 yang dikelola Google target.

Outputnya mirip dengan hal berikut ini:

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

Jika status sertifikat bukan ACTIVE setelah beberapa jam, periksa hal berikut:

Untuk mengetahui langkah pemecahan masalah lainnya, lihat Memecahkan Masalah Pengelola Sertifikat.

Pembersihan

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

  1. Hapus load balancer dan resource-nya.

    Untuk informasi selengkapnya, lihat Membersihkan penyiapan load balancing.

  2. Hapus atau lepas 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. Sebelum melepaskan peta sertifikat, perhatikan hal-hal berikut:

    • Jika ada sertifikat TLS (SSL) yang dilampirkan langsung ke proxy, melepaskan peta sertifikat akan menyebabkan proxy melanjutkan penggunaan sertifikat TLS (SSL) yang dilampirkan langsung tersebut.
    • Jika tidak ada sertifikat TLS (SSL) yang dilampirkan langsung ke proxy, peta sertifikat tidak dapat dilepas dari proxy. Anda harus terlebih dahulu melampirkan setidaknya satu sertifikat TLS (SSL) langsung ke proxy sebelum Anda 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. Menghapus 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.

Langkah selanjutnya