Tutorial ini akan memandu Anda melalui proses deployment sertifikat menggunakan sertifikat yang dikelola Google dengan otorisasi DNS sebagai contohnya.
Load balancer berikut mendukung sertifikat yang dikelola Google dengan otorisasi DNS:
- Load Balancer Aplikasi eksternal global
- Load Balancer Aplikasi Klasik
- Load Balancer Aplikasi internal lintas region
- Load Balancer Jaringan proxy eksternal global
Untuk membandingkan jenis otorisasi domain yang didukung, lihat Otorisasi domain.
Jika Anda ingin memigrasikan sertifikat yang ada ke Certificate Manager, ikuti langkah-langkah dalam Memigrasikan sertifikat ke Pengelola Sertifikat.
Tujuan
Tutorial ini menunjukkan kepada Anda cara menyelesaikan tugas-tugas berikut:
- Buat sertifikat yang dikelola Google dan diterbitkan oleh certificate authority yang dipercaya secara publik dengan otorisasi DNS menggunakan Certificate Manager.
- Deploy sertifikat ke load balancer yang didukung menggunakan proxy HTTPS target.
Untuk informasi selengkapnya tentang proses deployment sertifikat, lihat Ringkasan deployment.
Sebelum memulai
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
Gcloud CLI versi
465.0.0
atau yang lebih baru diperlukan untuk men-deploy sertifikat. Untuk memeriksa versi CLI gcloud, jalankan perintah berikut:gcloud --version
Untuk mengupdate gcloud CLI, jalankan perintah berikut.
gcloud components update
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.
- Administrator DNS: Diperlukan jika Anda ingin menggunakan Cloud DNS sebagai solusi DNS.
Untuk informasi selengkapnya, lihat referensi berikut:
- Peran dan izin untuk Certificate Manager
- Peran dan izin IAM Compute Engine untuk Compute Engine
- Kontrol akses dengan IAM untuk Cloud DNS
Buat sertifikat yang dikelola Google dengan otorisasi DNS
Selesaikan langkah-langkah di bagian ini untuk membuat otorisasi DNS dan sertifikat yang dikelola Google yang merujuk pada otorisasi DNS tersebut.
Membuat otorisasi DNS
Buat otorisasi DNS seperti yang dijelaskan di bagian ini. Jika Anda membuat
otorisasi DNS untuk sertifikat karakter pengganti, seperti *.myorg.example.com
,
konfigurasikan otorisasi DNS untuk domain induk—misalnya,
myorg.example.com
.
gcloud
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
Untuk menggunakan otorisasi DNS per project (Preview), jalankan perintah berikut:
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" \ --type="PER_PROJECT_RECORD" gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
Ganti kode berikut:
AUTHORIZATION_NAME
: nama otorisasi DNS.DOMAIN_NAME
: nama domain tempat Anda membuat otorisasi DNS ini. Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, sepertimyorg.example.com
.
Perintah menampilkan output yang mirip dengan berikut ini. Gunakan data CNAME dari output untuk menambahkan ke konfigurasi DNS Anda.
createTime: '2022-01-14T13:35:00.258409106Z' dnsResourceRecord: data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. name: _acme-challenge.myorg.example.com. type: CNAME domain: myorg.example.com name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization updateTime: '2022-01-14T13:35:01.571086137Z'
Terraform
Untuk membuat otorisasi DNS, Anda dapat menggunakan resource google_certificate_manager_dns_authorization
.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Tambahkan data CNAME ke konfigurasi DNS Anda
Jika Anda menggunakan Google Cloud untuk mengelola DNS, selesaikan langkah-langkah di bagian ini. Jika tidak, baca dokumentasi untuk solusi DNS pihak ketiga Anda.
Sebelum menyelesaikan langkah-langkah di bagian ini, pastikan Anda telah membuat zona DNS publik.
Saat Anda membuat otorisasi DNS, perintah gcloud CLI akan menampilkan data CNAME yang sesuai. Anda harus menambahkan data CNAME ini ke konfigurasi DNS di zona DNS domain target sebagai berikut:
gcloud
- Mulai transaksi data DNS:
gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
Ganti DNS_ZONE_NAME
dengan nama zona DNS target.
- Tambahkan data CNAME ke zona DNS target:
gcloud dns record-sets transaction add CNAME_RECORD \ --name="_acme-challenge.DOMAIN_NAME." \ --ttl="30" \ --type="CNAME" \ --zone="DNS_ZONE_NAME"
Ganti kode berikut:
CNAME_RECORD
: nilai data lengkap dari data CNAME yang ditampilkan oleh perintah Google Cloud CLI yang membuat otorisasi DNS yang sesuai.DOMAIN_NAME
: nama domain target. Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, sepertimyorg.example.com
. Anda juga harus menyertakan titik di akhir setelah nama domain target.DNS_ZONE_NAME
: nama zona DNS target.
Lihat contoh berikut:
gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \ --name="_acme-challenge.myorg.example.com." \ --ttl="30" \ --type="CNAME" \ --zone="myorg-example-com"
- Jalankan transaksi data DNS untuk menyimpan perubahan:
gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
Ganti DNS_ZONE_NAME
dengan nama zona DNS target.
Terraform
Untuk menambahkan data CNAME ke konfigurasi DNS, Anda dapat menggunakan
resource google_dns_record_set
.
Buat sertifikat yang dikelola Google yang merujuk pada otorisasi DNS
Untuk membuat sertifikat yang dikelola Google, yang merujuk ke otorisasi DNS yang Anda buat pada langkah sebelumnya, lakukan langkah 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_NAME \ --dns-authorizations=AUTHORIZATION_NAME
Ganti kode berikut:
CERTIFICATE_NAME
: nama unik sertifikat.DOMAIN_NAME
: domain target sertifikat. Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, sepertimyorg.example.com
.AUTHORIZATION_NAME
: nama otorisasi DNS yang Anda buat untuk sertifikat ini.
Untuk membuat sertifikat yang dikelola Google dengan nama domain karakter pengganti, gunakan perintah berikut. Sertifikat nama domain karakter pengganti mencakup semua subdomain level pertama dari domain tertentu.
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="*.DOMAIN_NAME,DOMAIN_NAME" \ --dns-authorizations=AUTHORIZATION_NAME
Ganti kode berikut:
CERTIFICATE_NAME
: nama unik sertifikat.DOMAIN_NAME
: domain target sertifikat. Awalan tanda bintang (*.
) menandakan sertifikat karakter pengganti. Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, sepertimyorg.example.com
.AUTHORIZATION_NAME
: nama otorisasi DNS yang Anda buat untuk sertifikat ini.
Untuk Load Balancer Aplikasi internal Lintas region:
Jalankan perintah berikut:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains=DOMAIN_NAME \ --dns-authorizations=AUTHORIZATION_NAME \ --scope=all-regions
Ganti kode berikut:
CERTIFICATE_NAME
: nama unik sertifikat.DOMAIN_NAME
: domain target sertifikat. Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, sepertimyorg.example.com
.AUTHORIZATION_NAME
: nama otorisasi DNS yang Anda buat untuk sertifikat ini.
Untuk membuat sertifikat yang dikelola Google dengan nama domain karakter pengganti, gunakan perintah berikut. Sertifikat nama domain karakter pengganti mencakup semua subdomain level pertama dari domain tertentu.
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="*.DOMAIN_NAME,DOMAIN_NAME" \ --dns-authorizations=AUTHORIZATION_NAME \ --scope=all-regions
Ganti kode berikut:
CERTIFICATE_NAME
: nama unik sertifikat.DOMAIN_NAME
: domain target sertifikat. Awalan tanda bintang (*.
) menandakan sertifikat karakter pengganti. Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, sepertimyorg.example.com
.AUTHORIZATION_NAME
: nama otorisasi DNS yang Anda buat untuk sertifikat ini.
Terraform
Memastikan sertifikat aktif
Gunakan perintah berikut untuk memverifikasi bahwa sertifikat aktif sebelum men-deploy-nya ke load balancer Anda. Diperlukan waktu hingga beberapa jam 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: authorizationAttemptInfo: - domain: myorg.example.com state: AUTHORIZED dnsAuthorizations: - projects/my-project/locations/global/dnsAuthorizations/myAuth domains: - myorg.example.com 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 dengan tugas di bagian ini, pastikan Anda telah menyelesaikan tugas yang tercantum di bagian Membuat sertifikat yang dikelola Google dengan otorisasi DNS.
Bergantung pada jenis load balancer, Anda dapat men-deploy sertifikat sebagai berikut:
- Untuk load balancer berikut, deploy sertifikat menggunakan
peta sertifikat:
- Load Balancer Aplikasi eksternal global
- Load Balancer Jaringan proxy eksternal global
- Load Balancer Aplikasi Klasik
- Untuk Load Balancer Aplikasi internal lintas region, deploy sertifikat dengan melampirkan langsung ke proxy target.
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 merujuk ke entri peta sertifikat yang terkait dengan sertifikat Anda:
gcloud
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
.
Membuat entri peta sertifikat
Buat entri peta sertifikat dan kaitkan dengan sertifikat Anda serta peta sertifikat Anda:
gcloud
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 sertifikatCERTIFICATE_MAP_NAME
: nama peta sertifikat tempat entri peta sertifikat ini dilampirkanCERTIFICATE_NAME
: nama sertifikat yang ingin Anda kaitkan dengan entri peta sertifikat iniHOSTNAME
: nama host yang ingin Anda kaitkan dengan entri peta sertifikat ini
Terraform
Untuk membuat entri peta sertifikat, Anda dapat menggunakan
resource google_certificate_manager_certificate_map_entry
.
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 targetCERTIFICATE_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:
gcloud
Di konsol Google Cloud, buka halaman Target proxy.
Perhatikan nama proxy target.
Lampirkan peta sertifikat ke proxy target:
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
Ganti kode berikut:
PROXY_NAME
: nama proxy target.CERTIFICATE_MAP_NAME
: nama peta sertifikat yang merujuk pada entri peta sertifikat Anda dan sertifikat terkait.
Terraform
Untuk melampirkan peta sertifikat ke proxy target, Anda dapat menggunakan
resource google_compute_target_https_proxy
.
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.
Pembersihan
Untuk mengembalikan perubahan yang Anda buat dalam tutorial ini, selesaikan langkah-langkah berikut:
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 melanjutkan penggunaan 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 setidaknya satu sertifikat TLS (SSL) langsung ke proxy sebelum 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.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.
Hapus peta sertifikat:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Ganti
CERTIFICATE_MAP_NAME
dengan nama peta sertifikat target.Hapus sertifikat yang dikelola Google:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Ganti
CERTIFICATE_NAME
dengan nama sertifikat target.Hapus otorisasi DNS:
gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME
Ganti
AUTHORIZATION_NAME
dengan nama otorisasi DNS target.