Tutorial ini menunjukkan cara menggunakan Certificate Manager untuk men-deploy sertifikat global yang dikelola sendiri.
Load balancer berikut mendukung sertifikat global yang dikelola sendiri:
- 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 regional atau lintas region, lihat berikut ini:
Tujuan
Tutorial ini menunjukkan kepada Anda cara menyelesaikan tugas-tugas berikut:
- Mengupload sertifikat yang dikelola sendiri ke Certificate Manager.
- Deploy sertifikat ke load balancer yang didukung menggunakan proxy HTTPS target.
Sebelum memulai
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Certificate Manager APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
Install the Google Cloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
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:
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.
Untuk informasi selengkapnya, lihat referensi berikut:
- Peran dan izin untuk Certificate Manager.
- Peran dan izin IAM Compute Engine untuk Compute Engine.
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:
Untuk membuat Load Balancer Aplikasi eksternal global, lihat Menyiapkan Load Balancer Aplikasi eksternal global dengan backend grup instance VM.
Untuk membuat Load Balancer Aplikasi klasik, lihat Menyiapkan Load Balancer Aplikasi klasik dengan backend grup instance terkelola.
Untuk membuat Load Balancer Jaringan proxy eksternal global (proxy SSL), lihat Menyiapkan Load Balancer Jaringan proxy eksternal global (proxy SSL) dengan backend grup instance VM.
Untuk membuat Load Balancer Jaringan proxy klasik (proxy SSL), lihat Menyiapkan Load Balancer Jaringan proxy klasik (proxy SSL) dengan backend grup instance VM.
Membuat kunci pribadi dan sertifikat
Untuk membuat kunci pribadi dan sertifikat, lakukan hal berikut:
Gunakan certificate authority (CA) pihak ketiga tepercaya untuk menerbitkan sertifikat beserta kunci terkaitnya.
Pastikan sertifikat dirantai dengan benar dan dipercaya root.
Siapkan file berenkode PEM berikut:
- File sertifikat (CRT)
- File kunci pribadi yang sesuai (KEY)
Untuk mengetahui informasi tentang cara meminta dan memvalidasi sertifikat, lihat Membuat kunci pribadi dan sertifikat.
Mengupload sertifikat yang dikelola sendiri ke Certificate Manager
Untuk mengupload sertifikat ke Certificate Manager, lakukan hal berikut:
Konsol
Di konsol Google Cloud , buka halaman Certificate Manager.
Di tab Certificates, klik Add Certificate.
Di kolom Certificate name, masukkan nama unik untuk sertifikat.
Opsional: Di kolom Description, masukkan deskripsi untuk sertifikat. Deskripsi ini memungkinkan Anda mengidentifikasi sertifikat.
Untuk Location, pilih Global.
Untuk Scope, pilih Default.
Untuk Certificate type, pilih Create self-managed certificate.
Untuk kolom Certificate, lakukan salah satu tindakan berikut:
- Klik tombol Upload, lalu pilih file sertifikat berformat PEM.
- Salin dan tempel konten sertifikat berformat PEM. Konten
harus diawali dengan
-----BEGIN CERTIFICATE-----dan diakhiri dengan-----END CERTIFICATE-----.
Untuk kolom Sertifikat kunci pribadi, lakukan salah satu tindakan berikut:
- Klik tombol Upload dan pilih kunci pribadi Anda. Kunci pribadi Anda harus berformat PEM dan tidak dilindungi dengan frasa sandi.
- Salin dan tempel konten kunci pribadi berformat PEM. Kunci pribadi harus diawali dengan
-----BEGIN PRIVATE KEY-----dan diakhiri dengan-----END PRIVATE KEY-----.
Di kolom Labels, tentukan label yang akan dikaitkan dengan sertifikat. Untuk menambahkan label, klik Tambahkan label, lalu tentukan kunci dan nilai untuk label Anda.
Klik Create.
Sertifikat baru akan muncul dalam daftar sertifikat.
gcloud
Untuk membuat sertifikat yang dikelola sendiri secara global, gunakan perintah certificate-manager certificates create:
gcloud certificate-manager certificates create CERTIFICATE_NAME \
--certificate-file="CERTIFICATE_FILE" \
--private-key-file="PRIVATE_KEY_FILE"
Ganti kode berikut:
CERTIFICATE_NAME: nama sertifikat.CERTIFICATE_FILE: jalur dan nama file dari file sertifikat CRT.PRIVATE_KEY_FILE: jalur dan nama file dari file kunci pribadi KEY.
Terraform
Untuk mengupload sertifikat yang dikelola sendiri, Anda dapat menggunakan
resource google_certificate_manager_certificate dengan blok self_managed.
API
Upload sertifikat dengan membuat permintaan POST ke
metode certificates.create sebagai berikut:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
self_managed: {
pem_certificate: "PEM_CERTIFICATE",
pem_private_key: "PEM_KEY",
}
}
Ganti kode berikut:
PROJECT_ID: ID project Google Cloud Anda.CERTIFICATE_NAME: nama sertifikat.PEM_CERTIFICATE: PEM sertifikat.PEM_KEY: PEM kunci.
Men-deploy sertifikat yang dikelola sendiri ke load balancer
Untuk men-deploy sertifikat global yang dikelola sendiri, 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.
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.comdan*.example.com. Selain itu, Anda harus menentukan dua entri peta sertifikat - satu untukexample.comdan satu lagi untuk*.example.com.
Terraform
Untuk membuat entri peta sertifikat dengan domain root, gunakan
resource google_certificate_manager_certificate_map_entry.
Untuk membuat entri peta sertifikat dengan domain karakter pengganti, gunakan
resource google_certificate_manager_certificate_map_entry.
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.
Di konsol Google Cloud , buka halaman Load balancing.
Klik nama load balancer yang ingin Anda perbarui, lalu klik Edit.
Klik Frontend configuration, lalu pilih konfigurasi alamat IP dan port frontend yang ingin Anda edit.
Jika Choose certificate repository muncul, pilih Use certificate map.
Dalam daftar Select a certificate map, pilih peta sertifikat Anda.
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.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan dalam tutorial ini, hapus resource tersebut.
Hapus load balancer dan resource-nya.
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-mapGanti
PROXY_NAMEdengan 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.CERTIFICATE_MAP_NAME: nama peta sertifikat.
Hapus peta sertifikat:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Ganti
CERTIFICATE_MAP_NAMEdengan nama peta sertifikat.Hapus sertifikat yang diupload:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Ganti
CERTIFICATE_NAMEdengan nama sertifikat.