Jika Anda ingin menggunakan HTTPS,
- Penampung Anda akan terus memproses
$PORT
Anda harus memilih cara menyediakan sertifikat TLS:
- Gunakan sertifikat TLS terkelola, dengan sertifikat TLS otomatis dibuat sesuai kebutuhan, dan diperpanjang secara otomatis. Halaman ini menjelaskan fitur ini, yang tersedia di versi Google Kubernetes Engine yang didukung.
- Gunakan sertifikat Anda sendiri, dengan Anda bertanggung jawab untuk mendapatkan dan memperpanjang sertifikat. Dalam beberapa situasi, yang dijelaskan di bagian Batasan, Anda harus menggunakan sertifikat Anda sendiri.
Jika menggunakan sertifikat terkelola, Anda juga harus memetakan domain kustom untuk menggunakan fitur sertifikat terkelola.
Menggunakan HTTPS dan HTTP
Secara default, jika Anda menggunakan sertifikat terkelola, cluster atau layanan penayangan Knative dengan sertifikat terkelola akan diekspos ke traffic HTTP dan HTTPS. Jika hanya menginginkan traffic HTTPS, Anda dapat mengaktifkan pengalihan HTTPS untuk memaksa semua traffic agar hanya menggunakan HTTPS.
Pemecahan masalah
Jika Anda mengalami masalah saat menggunakan sertifikat TLS terkelola, lihat halaman pemecahan masalah TLS terkelola.
Batasan
Pertimbangan berikut berlaku untuk penggunaan fitur sertifikat TLS terkelola:
- Sertifikat TLS terkelola dinonaktifkan dan tidak didukung untuk cluster pribadi penayangan Knative di Google Cloud.
- Untuk menggunakan fitur sertifikat terkelola, layanan Anda harus ditampilkan secara eksternal: layanan tidak boleh berupa layanan lokal cluster atau layanan yang ditampilkan oleh Virtual Private Cloud.
- Fitur sertifikat terkelola hanya berfungsi dengan Cloud Service Mesh. Add-on Istio atau konfigurasi Istio lainnya tidak didukung.
- Fitur ini menggunakan Let's Encrypt, yang memiliki batas kuota awal 50 sertifikat TLS per minggu per domain terdaftar. Anda dapat meminta penambahan kuota dengan mengikuti dokumentasi Let's Encrypt.
- Saat menjalankan cluster penayangan Knative di platform lain, seperti on-prem atau AWS, fitur ini dinonaktifkan. Untuk menggunakan fitur ini, Anda harus memastikan cluster dapat mengakses Let's Encrypt, dan layanan masuk Cloud Service Mesh Anda diekspos ke internet publik.
Sebelum memulai
Petunjuk di halaman ini mengasumsikan hal berikut:
- Anda telah men-deploy layanan penayangan Knative ke cluster.
- Anda memiliki domain. Jika belum memiliki domain, Anda bisa mendapatkannya dari Google atau dari vendor domain lain.
- Anda telah membuat pemetaan domain untuk layanan dan memperbarui data DNS sesuai dengan petunjuk di halaman pemetaan domain.
- Gunakan Cloud DNS, atau server DNS pilihan Anda.
Menonaktifkan sertifikat TLS dan HTTPS terkelola untuk seluruh cluster
Nonaktifkan TLS terkelola untuk cluster dengan mengupdate ConfigMap
config-domainmapping
:
kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Disabled"}}'
Menonaktifkan TLS dan HTTPS terkelola untuk pemetaan domain tertentu
Jika perlu, Anda dapat menonaktifkan TLS terkelola untuk pemetaan domain tertentu:
Tambahkan anotasi
domains.cloudrun.com/disableAutoTLS: "true"
`:kubectl annotate domainmappings DOMAIN domains.cloudrun.com/disableAutoTLS=true
Pastikan HTTPS tidak berfungsi:
curl https://DOMAIN
Pastikan HTTP digunakan untuk layanan:
gcloud run domain-mappings describe --domain DOMAIN
Ganti DOMAIN dengan nama domain Anda sendiri, misalnya:
your-domain.com
Periksa kolom
url:
dalam hasil dari perintah di atas: URL harus memilikihttp
, bukanhttps
.
Mengaktifkan kembali sertifikat TLS dan HTTPS terkelola
Untuk mengaktifkan kembali TLS terkelola:
Jika Anda belum melakukannya, buat pemetaan domain untuk layanan Anda dan perbarui data DNS Anda dengan mengikuti petunjuk di halaman pemetaan domain.
Aktifkan sertifikat TLS dan HTTPS terkelola dengan mengupdate ConfigMap
config-domainmapping
:kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Enabled"}}'
Tunggu beberapa menit setelah perintah berhasil, lalu pastikan fitur sertifikat berfungsi:
kubectl get kcert
Jika sertifikat sudah siap, Anda akan melihat pesan seperti ini:
NAME READY REASON your-domain.com True
Mungkin perlu waktu 20 detik hingga 2 menit agar
Kcert
siap. Jika Anda mengalami masalah, lihat petunjuk pemecahan masalah untuk fitur ini.
Memverifikasi keberhasilan
Pastikan data DNS telah diterapkan dengan menjalankan perintah:
gcloud run domain-mappings describe --domain DOMAIN
Ganti DOMAIN dengan nama domain Anda sendiri, misalnya:
your-domain.com
Periksa kolom
url:
dalam hasil dari perintah di atas: URL harus memilikihttps
, bukanhttp
.Periksa alamat IP dari perintah di atas, yang tercantum di bagian
resourceRecords:rrdata
, dan bandingkan dengan nilai yang Anda lihat saat menjalankan perintahhost DOMAIN
. Keduanya harus sama.
Mengaktifkan pengalihan HTTPS untuk penayangan Knative
Jika Anda menggunakan fitur sertifikat TLS terkelola, secara default cluster akan ditampilkan ke traffic HTTP dan HTTPS karena alasan kompatibilitas mundur. Jika ingin memaksa semua traffic hanya menggunakan HTTPS, Anda dapat mengaktifkan pengalihan HTTPS untuk pemetaan domain yang ada dengan memanggil perintah
kubectl annotate domainmappings DOMAIN domains.cloudrun.com/httpsRedirect=Enabled
dengan DOMAIN adalah nama pemetaan domain.
Topik terkait
- Memecahkan masalah TLS terkelola untuk mengetahui detail tentang cara memeriksa pemetaan domain, kuota sertifikat, status pesanan, dan waktu tunggu pesanan, serta kegagalan otorisasi.
- Baca Membawa sertifikat TLS Anda sendiri untuk mengetahui petunjuk tentang cara menggunakan sertifikat TLS Anda sendiri, bukan sertifikat TLS terkelola.