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


Tutorial ini akan memandu Anda dalam melakukan proses deployment sertifikat menggunakan sertifikat yang dikelola Google dengan Certificate Authority Service sebagai contohnya.

Load balancer berikut mendukung sertifikat yang dikelola Google dengan CA Service:

  • Load Balancer Aplikasi eksternal global
  • Load Balancer Aplikasi Klasik
  • Load Balancer Aplikasi internal lintas region
  • Load Balancer Jaringan proxy eksternal global

Jika kebijakan penerbitan sertifikat diterapkan pada kumpulan CA target, penyediaan sertifikat mungkin akan gagal karena salah satu alasan berikut:

  • Kebijakan penerbitan sertifikat telah memblokir sertifikat yang diminta. Dalam hal ini, Anda tidak ditagih karena sertifikat belum diterbitkan.
  • Kebijakan telah menerapkan perubahan pada sertifikat yang tidak didukung oleh Pengelola Sertifikat. Dalam kasus ini, Anda masih ditagih karena sertifikat telah diterbitkan, meskipun tidak sepenuhnya kompatibel dengan Certificate Manager.

Sertifikat yang dikeluarkan dengan mengikuti langkah-langkah dalam tutorial ini tidak dipercaya secara publik. Jika Anda ingin menerbitkan sertifikat yang dipercaya secara publik, ikuti langkah-langkah dalam salah satu tutorial berikut:

Jika Anda ingin memigrasikan sertifikat yang ada ke Pengelola Sertifikat, ikuti langkah-langkah dalam Memigrasikan sertifikat ke Pengelola Sertifikat.

Perlu diingat bahwa meskipun Anda menggunakan kumpulan CA regional untuk menerbitkan sertifikat TLS yang dikelola Google, sertifikat itu sendiri bersifat global dan dapat digunakan di region mana pun.

Tujuan

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

  • Buat sertifikat yang dikelola Google dengan Layanan CA menggunakan Pengelola Sertifikat.
  • Deploy sertifikat ke load balancer yang didukung menggunakan proxy HTTPS target.

Untuk mengetahui informasi selengkapnya tentang proses deployment sertifikat, lihat Ringkasan deployment.

Sebelum memulai

  1. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

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

    • Pemilik Pengelola Sertifikat: Diperlukan untuk membuat dan mengelola resource Certificate Manager.
    • Admin Load Balancer Compute atau Admin Jaringan Compute: Diperlukan untuk membuat dan mengelola proxy target HTTPS.
    • Certificate Authority Service Admin: Diperlukan untuk melakukan tindakan dalam CA Service.

    Untuk informasi selengkapnya, lihat referensi berikut:

  3. Aktifkan CA Service API.

  4. Buat kumpulan CA. Anda harus membuat dan mengaktifkan setidaknya satu CA dalam kumpulan CA ini.

Konfigurasikan integrasi CA Service dengan Certificate Manager

Konfigurasikan Pengelola Sertifikat untuk berintegrasi dengan Layanan CA sebagai berikut:

  1. Gunakan perintah berikut untuk membuat akun layanan Certificate Manager di project Google Cloud target:

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

    Ganti PROJECT_ID dengan ID project Google Cloud target.

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

    service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
    
  2. Beri akun layanan Certificate Manager peran Pemohon Sertifikat dalam kumpulan CA target sebagai berikut:

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

    Ganti kode berikut:

    • CA_POOL: ID kumpulan CA target.
    • REGION: region 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:

    gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
       --ca-pool=CA_POOL \
       [--lifetime=CERTIFICATE_LIFETIME] \
       [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \
       [--key-algorithm=KEY_ALGORITHM]
    

    Ganti kode berikut:

    • ISSUANCE_CONFIG_NAME: nama unik resource konfigurasi penerbitan sertifikat.
    • CA_POOL: jalur resource lengkap dan nama kumpulan CA yang ingin Anda tetapkan ke resource konfigurasi penerbitan sertifikat ini.
    • CERTIFICATE_LIFETIME: masa berlaku sertifikat dalam hari. Nilai yang valid adalah dari 21 hingga 30 hari dalam format durasi standar. Nilai defaultnya adalah 30 hari (30D). Setelan ini bersifat opsional.

    • ROTATION_WINDOW_PERCENTAGE: persentase masa berlaku sertifikat saat perpanjangan dipicu. Setelan ini bersifat opsional.

      Nilai defaultnya adalah 66 persen. Anda harus menetapkan persentase periode rotasi dalam kaitannya dengan masa aktif sertifikat, sehingga perpanjangan sertifikat terjadi setidaknya 7 hari setelah sertifikat diterbitkan dan setidaknya 7 hari sebelum masa berlaku sertifikat berakhir.

    • KEY_ALGORITHM: algoritma enkripsi yang digunakan untuk membuat kunci pribadi. Nilai yang valid adalah ecdsa-p256 atau rsa-2048. Nilai defaultnya adalah rsa-2048. Setelan ini bersifat opsional.

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

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

Buat sertifikat yang dikelola Google yang diterbitkan oleh instance CA Service Anda sebagai berikut:

gcloud

Untuk Load Balancer Aplikasi eksternal Global, Load Balancer Aplikasi Klasik, atau Load Balancer Jaringan proxy eksternal Global:

Jalankan perintah berikut:

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

Ganti kode berikut:

  • CERTIFICATE_NAME: nama unik sertifikat.
  • DOMAIN_NAMES: daftar domain target yang dipisahkan koma untuk sertifikat ini. Setiap 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.

Untuk Load Balancer Aplikasi internal Lintas region:

Jalankan perintah berikut:

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

Ganti kode berikut:

  • CERTIFICATE_NAME: nama unik sertifikat.
  • DOMAIN_NAMES: daftar domain target yang dipisahkan koma untuk sertifikat ini. Setiap 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:

Untuk Load Balancer Aplikasi eksternal Global, Load Balancer Aplikasi Klasik, atau Load Balancer Jaringan proxy eksternal Global:

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 target.
  • CERTIFICATE_NAME: nama unik sertifikat.
  • DOMAIN_NAME: domain target untuk sertifikat ini . 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.

Untuk Load Balancer Aplikasi internal Lintas region:

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

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud target.
  • CERTIFICATE_NAME: nama unik sertifikat.
  • DOMAIN_NAME: domain target untuk sertifikat ini . 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.

Untuk ringkasan proses deployment sertifikat, lihat Ringkasan deployment.

Memastikan sertifikat aktif

Gunakan perintah berikut untuk memverifikasi bahwa sertifikat aktif sebelum men-deploy-nya ke load balancer Anda. Diperlukan waktu beberapa menit agar status sertifikat berubah menjadi ACTIVE.

gcloud certificate-manager certificates describe CERTIFICATE_NAME

Ganti CERTIFICATE_NAME dengan nama target sertifikat yang dikelola Google.

Perintah akan menampilkan output yang mirip dengan berikut ini:

certificatePem: myPEM
createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
  domains:
  - myorg.example.com
  issuanceConfig: projects/myProject/locations/global/certificateIssuanceConfigs/myIssuanceConfig
  state: ACTIVE
name: projects/myProject/locations/global/certificates/myCert
scope: myScope
sanDnsnames:
- myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Men-deploy sertifikat ke load balancer

Bagian ini akan memandu Anda melakukan langkah-langkah yang diperlukan untuk men-deploy sertifikat yang dikelola Google ke load balancer.

Sebelum melanjutkan ke tugas di bagian ini, pastikan Anda telah menyelesaikan tugas yang tercantum di bagian Mengonfigurasi integrasi CA Service dengan Certificate Manager dan Membuat sertifikat yang dikelola Google yang diterbitkan oleh instance CA Service Anda.

Bergantung pada jenis load balancer, Anda dapat men-deploy sertifikat sebagai berikut:

Men-deploy sertifikat menggunakan peta sertifikat

Bagian ini menjelaskan langkah-langkah untuk men-deploy sertifikat menggunakan peta sertifikat.

Membuat peta sertifikat

Buat peta sertifikat yang akan mereferensikan entri peta sertifikat yang terkait dengan sertifikat Anda:

gcloud certificate-manager maps create CERTIFICATE_MAP_NAME

Ganti CERTIFICATE_MAP_NAME dengan nama peta sertifikat target.

Membuat entri peta sertifikat

Buat entri peta sertifikat dan kaitkan dengan sertifikat serta peta sertifikat Anda:

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 unik entri peta sertifikat
  • CERTIFICATE_MAP_NAME: nama peta sertifikat tempat entri peta sertifikat ini dilampirkan
  • CERTIFICATE_NAME: nama sertifikat yang ingin Anda kaitkan dengan entri peta sertifikat ini
  • HOSTNAME: nama host yang ingin Anda kaitkan dengan entri peta sertifikat ini

Memastikan entri peta sertifikat aktif

Gunakan perintah berikut untuk memverifikasi bahwa entri peta sertifikat aktif sebelum melampirkan peta sertifikat yang sesuai ke proxy target:

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 target
  • CERTIFICATE_MAP_NAME: nama peta sertifikat tempat entri peta sertifikat ini dilampirkan

Perintah akan menampilkan output yang mirip dengan berikut ini:

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

Lampirkan peta sertifikat ke proxy target

Lampirkan peta sertifikat yang dikonfigurasi ke proxy target yang diinginkan:

  1. Di konsol Google Cloud, buka halaman Target proxy.

    Buka Proxy target

  2. Perhatikan nama proxy target.

  3. Lampirkan peta sertifikat ke proxy target:

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

    Ganti kode berikut:

    • PROXY_NAME: nama proxy target
    • CERTIFICATE_MAP_NAME: nama peta sertifikat yang merujuk entri peta sertifikat Anda dan sertifikat yang terkait

Jika ada sertifikat TLS (SSL) yang dilampirkan langsung ke proxy, proxy akan memberikan preferensi ke sertifikat yang dirujuk oleh peta sertifikat daripada sertifikat TLS (SSL) yang dilampirkan secara langsung.

Lampirkan sertifikat secara langsung ke proxy target

Untuk melampirkan sertifikat secara langsung ke proxy, jalankan perintah berikut:

gcloud compute target-https-proxies update PROXY_NAME \
    --url-map=URL_MAP \
    --global \
    --certificate-manager-certificates=CERTIFICATE_NAME

Ganti kode berikut:

  • PROXY_NAME: nama unik proxy.
  • URL_MAP: nama peta URL. Anda telah membuat peta URL saat membuat load balancer.
  • CERTIFICATE_NAME: nama sertifikat.

Pemecahan masalah

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

Pembersihan

Untuk mengembalikan perubahan yang Anda buat dalam tutorial ini, selesaikan langkah-langkah berikut:

  1. Lepaskan peta sertifikat dari proxy.

    Sebelum Anda melepaskan peta sertifikat, perhatikan hal-hal berikut:

    • Jika ada sertifikat TLS (SSL) yang dilampirkan langsung ke proxy, melepaskan peta sertifikat akan menyebabkan proxy dilanjutkan menggunakan sertifikat TLS (SSL) yang dilampirkan secara 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 minimal satu sertifikat TLS (SSL) langsung ke proxy 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.

  2. 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 target
    • CERTIFICATE_MAP_NAME: nama peta sertifikat target
  3. Hapus peta sertifikat:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    Ganti CERTIFICATE_MAP_NAME dengan nama peta sertifikat target.

  4. Hapus sertifikat yang dikelola Google:

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    Ganti CERTIFICATE_NAME dengan nama sertifikat target.

  5. Hapus resource konfigurasi penerbitan sertifikat:

    gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
    

    Ganti ISSUANCE_CONFIG_NAME dengan nama resource konfigurasi penerbitan sertifikat target.

  6. Hapus kumpulan CA seperti yang dijelaskan dalam Menghapus kumpulan CA.

    Perlu diingat bahwa untuk menonaktifkan CA terakhir yang Anda aktifkan dalam kumpulan CA yang dirujuk dalam konfigurasi penerbitan sertifikat, atau untuk menghapus kumpulan CA yang dirujuk sepenuhnya, Anda harus terlebih dahulu menghapus setiap konfigurasi penerbitan sertifikat yang merujuk kumpulan CA tersebut.

Langkah selanjutnya