Halaman ini membahas cara membuat dan menggunakan Compute Engine sertifikat SSL yang dikelola Google.
Untuk membuat sertifikat yang dikelola Google menggunakan Certificate Manager, lihat Ringkasan deployment.
Sertifikat SSL yang dikelola Google adalah sertifikat Validasi Domain (DV) yang diperoleh dan dikelola Google Cloud untuk domain Anda. Sertifikat tersebut mendukung beberapa nama host di setiap sertifikat, dan Google memperpanjang sertifikat secara otomatis.
Sertifikat yang dikelola Google didukung dengan load balancer berikut:
- Load Balancer Aplikasi eksternal global
- Load Balancer Aplikasi Klasik
- Load Balancer Jaringan proxy eksternal (dengan proxy SSL target)
Sertifikat SSL yang dikelola Google tidak didukung untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional. Untuk load balancer ini, gunakan sertifikat SSL yang dikelola sendiri.
Anda juga dapat menggunakan sertifikat SSL terkelola dengan Google Kubernetes Engine. Untuk informasi selengkapnya, lihat Menggunakan sertifikat SSL yang dikelola Google.
Anda dapat membuat sertifikat yang dikelola Google sebelum, selama, atau setelah membuat load balancer. Halaman ini mengasumsikan bahwa Anda membuat sertifikat Compute Engine sebelum atau setelah membuat load balancer, bukan selama pembuatan load balancer. Untuk membuat sertifikat saat membuat load balancer, lihat halaman petunjuk load balancer.
Sebelum memulai
- Pastikan Anda sudah memahami Ringkasan sertifikat SSL.
- Pastikan Anda memiliki nama domain yang ingin digunakan untuk sertifikat SSL yang dikelola Google. Jika Anda menggunakan Cloud Domains, lihat bagian Mendaftarkan domain.
Pastikan Anda telah mengaktifkan Compute Engine API untuk project Anda.
Izin
Untuk mengikuti panduan ini, Anda harus dapat membuat dan mengubah sertifikat SSL di project Anda. Anda dapat melakukannya jika salah satu kondisi berikut terpenuhi:
- Anda adalah Pemilik atau Editor project (
roles/owner
atauroles/editor
). - Anda memiliki peran Admin Keamanan Compute
(
compute.securityAdmin
) dan peran Admin Jaringan Compute (compute.networkAdmin
) dalam project. - Anda memiliki peran khusus untuk project yang menyertakan izin
compute.sslCertificates.*
dan salah satu atau keduacompute.targetHttpsProxies.*
dancompute.targetSslProxies.*
, bergantung pada jenis load balancer yang Anda gunakan.
Langkah 1. Membuat sertifikat SSL yang dikelola Google
Anda dapat membuat sertifikat yang dikelola Google sebelum, selama, atau setelah membuat load balancer. Selama proses pembuatan load balancer di Konsol Google Cloud, Anda dapat menggunakan konsol Google Cloud untuk membuat sertifikat. Atau, Anda dapat membuat sertifikat sebelum atau sesudah membuat load balancer. Langkah ini menunjukkan cara membuat sertifikat yang dapat Anda tambahkan nanti ke satu atau beberapa load balancer.
Jika telah membuat sertifikat SSL yang dikelola Google, Anda dapat melewati langkah ini.
Konsol
Anda dapat menggunakan sertifikat SSL global di tab Sertifikat Klasik di halaman Pengelola Sertifikat.
- Buka tab Classic Certificates di Konsol Google Cloud.
Buka Sertifikat Klasik - Klik Buat sertifikat SSL.
- Masukkan nama dan deskripsi opsional untuk sertifikat.
- Pilih Buat sertifikat yang dikelola Google.
- Tambahkan domain.
- Klik Create.
gcloud
Untuk membuat sertifikat SSL global yang dikelola Google untuk Load Balancer Aplikasi eksternal global atau Load Balancer Jaringan proxy eksternal, gunakan perintah gcloud compute ssl-certificates
create
:
gcloud compute ssl-certificates create CERTIFICATE_NAME \ --description=DESCRIPTION \ --domains=DOMAIN_LIST \ --global
Ganti kode berikut:
CERTIFICATE_NAME
: nama untuk sertifikat SSL globalDESCRIPTION
: deskripsi untuk sertifikat SSL globalDOMAIN_LIST
: nama domain tunggal atau daftar nama domain yang dipisahkan koma yang akan digunakan untuk sertifikat ini
Terraform
Untuk membuat sertifikat SSL yang dikelola Google, gunakan resource google_compute_managed_ssl_certificate
.
api
Buat metode resource sertifikat
sslCertificates.insert
yang dikelola Google, dengan mengganti PROJECT_ID
dengan project ID Anda.
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/sslCertificates
{
"name": "ssl-certificate-name",
"managed": {
"domains": [
"www.example.com"
]
},
"type": "MANAGED"
}
Memeriksa status sertifikat SSL yang dikelola Google
Konsol
Anda dapat memeriksa status sertifikat SSL global di tab Sertifikat Klasik pada halaman Pengelola Sertifikat.
- Buka tab Classic Certificates di Konsol Google Cloud.
Buka Sertifikat Klasik - Opsional: Filter daftar sertifikat SSL.
- Periksa kolom Status.
- Untuk melihat detail selengkapnya, klik nama sertifikat.
gcloud
Untuk menentukan status sertifikat yang dikelola Google, Anda dapat menggunakan
perintah gcloud compute
. Setelah menjalankan perintah yang sesuai, perhatikan hal berikut:
- Status terkelola.
- Status domain.
Untuk mencantumkan sertifikat SSL yang dikelola Google, gunakan perintah gcloud
compute ssl-certificates
list
dengan tanda --global
.
gcloud compute ssl-certificates list \ --global
Anda dapat menggunakan perintah
gcloud compute ssl-certificates
describe
, yang menggantikan CERTIFICATE_NAME
:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(name,managed.status, managed.domainStatus)"
Pada tahap ini, status sertifikat dan status domain adalah PROVISIONING
.
Setelah Anda menyelesaikan langkah-langkah di halaman ini, statusnya akan berubah menjadi ACTIVE
.
Untuk mengetahui informasi selengkapnya tentang status, lihat halaman pemecahan masalah.
Langkah 2: Buat atau update load balancer
Untuk menjadi ACTIVE
, sertifikat SSL yang dikelola Google harus dikaitkan dengan load balancer, khususnya proxy target load balancer.
Setelah membuat sertifikat SSL dan memiliki status PROVISIONING
, Anda dapat menggunakannya selama pembuatan load balancer, seperti yang dijelaskan dalam panduan cara kerja berikut:
- Menyiapkan Load Balancer Aplikasi eksternal global dengan backend Compute Engine
- Menyiapkan Load Balancer Aplikasi klasik dengan backend Compute Engine
- Menyiapkan Load Balancer Jaringan proxy eksternal dengan proxy SSL
Atau, Anda dapat menggunakannya untuk mengupdate load balancer yang sudah ada, seperti yang dijelaskan di sini:
Konsol
Saat Anda mengupdate Load Balancer Aplikasi eksternal global atau Load Balancer Jaringan proxy eksternal menggunakan Konsol Google Cloud, Google Cloud akan otomatis mengaitkan sertifikat SSL Anda dengan proxy target yang benar.
- Buka halaman Load balancing di Konsol Google Cloud.
Buka Load balancing - Klik nama load balancer Anda.
- Klik Edit .
- Klik Frontend configuration.
- Klik front end yang benar (harus HTTPS, HTTP/2, SSL).
- Klik Additional certificate, lalu pilih sertifikat yang dikelola Google dari menu drop-down.
- Klik Create.
gcloud
Untuk mengaitkan sertifikat SSL dengan proxy HTTPS target untuk
Load Balancer Aplikasi eksternal global,
gunakan perintah gcloud compute target-https-proxies update
dengan flag --global-ssl-certificates
dan --global
:
gcloud compute target-https-proxies update TARGET_PROXY_NAME \ --ssl-certificates SSL_CERTIFICATE_LIST \ --global-ssl-certificates \ --global
Untuk mengaitkan sertifikat SSL dengan proxy SSL target untuk Load Balancer Jaringan proxy eksternal, gunakan perintah gcloud compute target-ssl-proxies update
:
gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \ --ssl-certificates SSL_CERTIFICATE_LIST
Ganti kode berikut:
TARGET_PROXY_NAME
: nama proxy target load balancerSSL_CERTIFICATE_LIST
: daftar resource sertifikat SSL yang dipisahkan komaPastikan daftar sertifikat yang dirujuk menyertakan semua sertifikat SSL valid yang lama, serta sertifikat SSL baru. Perintah
gcloud compute target-ssl-proxies update
akan mengganti nilai asli untuk--ssl-certificates
dengan nilai baru.
Terraform
Untuk membuat proxy HTTPS target, gunakan resource google_compute_target_https_proxy
.
Untuk membuat proxy SSL target, gunakan resource google_compute_target_ssl_proxy
.
Setiap proxy HTTPS target atau proxy SSL target harus merujuk setidaknya satu sertifikat SSL. Proxy target dapat merujuk ke lebih dari satu sertifikat SSL. Untuk mengetahui detailnya, lihat Kumpulan target dan proxy target dalam kuota dan batas resource load balancing.
Langkah 3: Verifikasi pengaitan proxy target
Setelah membuat atau memperbarui load balancer, Anda dapat memastikan bahwa sertifikat SSL dikaitkan dengan proxy target load balancer.
Jika Anda belum mengetahui nama proxy target, gunakan perintah
gcloud compute target-https-proxies list
dan
gcloud compute target-ssl-proxies list
untuk mencantumkan proxy target dalam project Anda.
Verifikasi pengaitan antara sertifikat SSL dan proxy target dengan menjalankan perintah berikut.
Untuk Load Balancer Aplikasi eksternal global:
gcloud compute target-https-proxies describe TARGET_HTTPS_PROXY_NAME \ --global \ --format="get(sslCertificates)"
Untuk Load Balancer Jaringan proxy eksternal:
gcloud compute target-ssl-proxies describe TARGET_SSL_PROXY_NAME \ --format="get(sslCertificates)"
Pada tahap ini, status sertifikat yang dikelola Google mungkin masih berstatus PROVISIONING
. Google Cloud bekerja sama dengan
Certificate Authority untuk menerbitkan sertifikat. Penyediaan sertifikat yang dikelola Google mungkin memerlukan waktu hingga 60 menit.
Langkah 4: Perbarui data DNS A dan AAAA agar mengarah ke alamat IP load balancer
Data DNS Anda mungkin dikelola di situs registrar, host DNS, atau ISP.
Saat mengelola data, perhatikan hal-hal berikut:
Pastikan data DNS A (untuk IPv4) dan data AAAA DNS (untuk IPv6) untuk domain dan subdomain mana pun mengarah ke alamat IP yang terkait dengan aturan penerusan atau aturan penerusan load balancer.
Jika Anda menggunakan Cloud DNS, siapkan domain dan perbarui server nama Anda.
Jika Anda memiliki beberapa domain dalam sertifikat yang dikelola Google, tambahkan atau perbarui data DNS untuk semua domain dan subdomain agar mengarah ke alamat IP load balancer.
Penyediaan sertifikat terkelola berhasil jika hal berikut berlaku:
- Data DNS domain Anda menggunakan data CNAME yang mengarah ke domain lain.
- Domain lainnya berisi data A atau AAAA yang mengarah ke alamat IP load balancer Anda.
Anda dapat memverifikasi penyiapan dengan menjalankan perintah dig
. Misalnya, anggaplah domain Anda adalah www.example.com
. Jalankan perintah dig
berikut:
dig www.example.com
; <<>> DiG 9.10.6 <<>> www.example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ;; flags: ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: ;; PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: ;; SECTION: ;www.example.com. ;; SECTION: www.example.com. example.net. example.net. 34.95.64.10 ;; time: ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: 16:54:44 ;; rcvd: 31748 qr rd 1 OPT 512 QUESTION IN A ANSWER 1742 IN CNAME 12 IN A Query 43 msec Wed Jun 03 PDT 2020 MSG SIZE 193>
Dalam contoh ini, 34.95.64.10
adalah alamat IP load balancer Anda.
DNS resolver di internet berada di luar kendali
Google Cloud. Keduanya meng-cache kumpulan data resource sesuai dengan time to live (TTL), yang berarti bahwa perintah dig
atau nslookup
dapat menampilkan nilai yang di-cache. Jika Anda menggunakan Cloud DNS, lihat Penyebaran perubahan.
Waktu penerapan catatan DNS
Data DNS A dan AAAA yang baru diperbarui dapat memerlukan waktu yang cukup lama untuk sepenuhnya diterapkan. Terkadang, penyebaran melalui internet memerlukan waktu hingga 72 jam di seluruh dunia, meskipun biasanya memerlukan waktu beberapa jam.
Jalankan kembali perintah berikut:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --format="get(managed.domainStatus)"
Jika status domain Anda adalah FAILED_NOT_VISIBLE
, hal ini mungkin karena penerapan
tidak selesai.
Untuk informasi selengkapnya, lihat bagian status domain sertifikat SSL yang dikelola Google di halaman Pemecahan masalah.
Langkah 5: Uji dengan OpenSSL
Setelah status sertifikat dan domain aktif, perlu waktu hingga 30 menit agar load balancer mulai menggunakan sertifikat SSL yang dikelola Google.
Untuk melakukan pengujian, jalankan perintah OpenSSL berikut. Ganti DOMAIN
dengan nama DNS Anda dan IP_ADDRESS
dengan alamat IP load balancer Anda.
echo | openssl s_client -showcerts -servername DOMAIN -connect IP_ADDRESS:443 -verify 99 -verify_return_error
Perintah ini menghasilkan sertifikat yang disajikan oleh load balancer
ke klien. Bersama dengan informasi mendetail lainnya, output harus
menyertakan rantai sertifikat dan Verify return code: 0 (ok)
.
Prosedur tambahan
Bagian ini berisi prosedur tambahan untuk mengelola sertifikat.
Mendukung beberapa domain dengan sertifikat SSL yang dikelola Google
Beberapa nama alternatif subjek didukung. Setiap sertifikat SSL yang dikelola Google mendukung hingga jumlah maksimum domain per sertifikat SSL yang dikelola Google.
Jika memiliki lebih dari jumlah maksimum domain, Anda harus meminta beberapa sertifikat yang dikelola Google. Misalnya, jika Anda mencoba membuat sertifikat yang dikelola Google dengan domain (maksimum + 1), Google tidak akan menerbitkan sertifikat apa pun. Sebagai gantinya, Anda harus membuat dua sertifikat yang dikelola Google atau lebih dan secara eksplisit menyatakan domain mana yang terkait dengan setiap sertifikat.
Google Cloud menerapkan Server Name Indication (SNI), seperti yang dijelaskan dalam RFC 6066.
Jika salah satu domain atau subdomain dalam sertifikat terkelola tidak mengarah ke alamat IP load balancer, proses perpanjangan akan gagal. Untuk menghindari kegagalan perpanjangan, pastikan semua domain dan subdomain Anda mengarah ke alamat IP load balancer.
Memperpanjang sertifikat SSL yang dikelola Google
Google Cloud menyediakan sertifikat terkelola yang berlaku selama 90 hari. Sekitar satu bulan sebelum masa berlaku habis, proses perpanjangan sertifikat akan otomatis dimulai. Untuk itu, Certificate Authority (CA) dipilih yang ada di data DNS Otorisasi Otoritas Sertifikasi (CAA) domain Anda dan di daftar CA.
CA yang digunakan untuk perpanjangan mungkin berbeda dengan CA yang digunakan untuk menerbitkan versi sebelumnya dari sertifikat yang dikelola Google. Anda dapat mengontrol CA yang digunakan Google Cloud untuk perpanjangan dengan memastikan bahwa data DNS CAA domain Anda menentukan satu CA dari daftar CA yang digunakan oleh sertifikat yang dikelola Google.
Jika salah satu domain atau subdomain dalam sertifikat terkelola tidak mengarah ke alamat IP load balancer, proses perpanjangan akan gagal. Untuk menghindari kegagalan perpanjangan, pastikan semua domain dan subdomain Anda mengarah ke alamat IP load balancer.
Tentukan CA yang dapat menerbitkan sertifikat yang dikelola Google
Di software DNS, sebaiknya Anda secara eksplisit memberi otorisasi kepada CA yang ingin diizinkan menerbitkan sertifikat yang dikelola Google. Meskipun tidak diperlukan dalam setiap skenario, hal ini diperlukan dalam situasi tertentu.
Misalnya, jika Anda menggunakan layanan DNS eksternal dan sertifikat yang dikelola Google milik Anda dicabut, layanan mungkin hanya memvalidasi sertifikat baru yang diterbitkan oleh satu atau beberapa CA tertentu.
Untuk melakukannya, buat atau ubah data CAA untuk menyertakan pki.goog
atau
letsencrypt.org
atau keduanya. Jika Anda tidak memiliki data CAA, perilaku default-nya adalah mengizinkan pki.goog
dan letsencrypt.org
.
DOMAIN. CAA 0 issue "pki.goog" DOMAIN. CAA 0 issue "letsencrypt.org"
Dukungan untuk sertifikat letsencrypt.org
diberikan atas dasar upaya
terbaik. Untuk keandalan terbaik, izinkan pki.goog
dan letsencrypt.org
. Jika Anda
hanya menentukan salah satu CA, hanya CA tersebut yang akan digunakan untuk membuat dan memperpanjang sertifikat
Anda. Pendekatan ini tidak direkomendasikan.
Saat Anda pertama kali membuat sertifikat, Google Cloud akan memilih
pki.goog
atau letsencrypt.org
, lalu menggunakannya untuk menerbitkan sertifikat Anda. Saat
Google memperpanjang sertifikat Anda, sertifikat Anda mungkin diterbitkan oleh CA lain,
bergantung pada CA yang telah ditentukan dalam data CAA (jika Anda membuatnya).
Sertifikat Anda mungkin diperpanjang oleh CA lain dalam salah satu kasus
berikut:
- Anda tidak memiliki data CAA DNS untuk domain Anda.
- Anda telah menyertakan kedua CA dalam data CAA DNS.
Untuk informasi selengkapnya, lihat Data DNS CAA.
letsencrypt.org
menerbitkan Nama Domain Internasional (IDN). pki.goog
saat ini tidak mendukung IDN.
Jika Anda menggunakan Cloud DNS, pelajari cara menambahkan data, dan pastikan untuk menyetel flag --type
ke CAA
.
Mengganti sertifikat SSL yang ada
Untuk mengganti sertifikat SSL yang ada:
Mulai proses untuk membuat sertifikat SSL pengganti yang dikelola Google. Sertifikat ini tidak menjadi AKTIF pada saat ini.
Update proxy target agar daftar sertifikat yang dirujuk menyertakan sertifikat SSL pengganti beserta sertifikat SSL saat ini. Langkah untuk mengupdate proxy target bervariasi, seperti berikut:
Tunggu hingga penyediaan sertifikat SSL pengganti selesai. Penyediaan mungkin memerlukan waktu hingga 60 menit. Setelah penyediaan selesai, status sertifikat akan menjadi
ACTIVE
.Tunggu selama 30 menit lagi untuk memastikan sertifikat pengganti tersedia untuk semua Google Front Ends (GFE).
Update proxy target untuk menghapus sertifikat SSL yang Anda ganti dari daftar sertifikat yang dirujuk. Langkah-langkah untuk mengupdate proxy target bervariasi, seperti berikut:
Tunggu selama 10 menit, dan pastikan load balancer menggunakan sertifikat SSL pengganti, bukan sertifikat yang lama.
Update proxy target lagi, dengan menghapus resource sertifikat SSL lama. Anda dapat menghapus resource sertifikat SSL jika resource tersebut tidak lagi direferensikan oleh proxy target mana pun.
Jika Anda tidak menghapus sertifikat SSL yang lama, sertifikat tersebut tetap AKTIF hingga kedaluwarsa.
Bermigrasi dari sertifikat SSL yang dikelola sendiri ke sertifikat SSL yang dikelola Google
Saat memigrasikan load balancer dari penggunaan sertifikat SSL yang dikelola sendiri ke sertifikat SSL yang dikelola Google, Anda harus melakukan langkah-langkah berikut dalam urutan ini:
- Buat sertifikat baru yang dikelola Google.
- Kaitkan sertifikat baru yang dikelola Google dengan proxy target yang benar sambil mempertahankan pengaitan proxy target dengan sertifikat yang dikelola sendiri yang sudah ada.
- Tunggu hingga status sertifikat yang dikelola Google menjadi
ACTIVE
. - Tunggu selama 30 menit hingga sertifikat baru dapat diterapkan ke penayangan Google Front End (GFE)
- Perbarui proxy target lagi, dengan menghapus resource sertifikat yang dikelola sendiri. Anda dapat menghapus resource sertifikat SSL yang dikelola sendiri jika resource tersebut tidak lagi dirujuk oleh proxy target apa pun.
Menghapus sertifikat SSL
Sebelum menghapus sertifikat SSL, pastikan tidak ada proxy target HTTPS atau SSL yang merujuk sertifikat ini. Anda dapat melakukannya dengan dua cara:
Perbarui proxy target yang merujuk sertifikat ini untuk mengecualikannya. Langkah-langkahnya bervariasi, seperti berikut:
Untuk menghapus satu atau beberapa sertifikat SSL:
Konsol
Anda dapat menghapus sertifikat SSL global di tab Sertifikat Klasik di halaman Pengelola Sertifikat.
- Buka tab Classic Certificates di Konsol Google Cloud.
Buka Sertifikat Klasik - Pilih sertifikat SSL yang ingin dihapus.
- Klik Delete.
- Untuk mengonfirmasi, klik Hapus lagi.
gcloud
Untuk menghapus sertifikat SSL global (untuk Load Balancer Aplikasi eksternal global atau Load Balancer Jaringan proxy eksternal), gunakan perintah gcloud compute ssl-certificates
delete
dengan perintah --global
:
gcloud compute ssl-certificates delete CERTIFICATE_NAME \ --global
Ganti kode berikut:
CERTIFICATE_NAME
: nama sertifikat SSL
Langkah selanjutnya
- Untuk memecahkan masalah sertifikat SSL, lihat Memecahkan masalah sertifikat SSL.
- Untuk menggunakan skrip Terraform yang membuat sertifikat yang dikelola Google, lihat contoh Cloud Run di halaman contoh modul Terraform untuk Load Balancer Aplikasi eksternal.