Menggunakan sertifikat TLS terkelola dan HTTPS

Halaman ini menunjukkan cara menonaktifkan dan mengaktifkan kembali sertifikat TLS terkelola fitur yang otomatis menyediakan dan memperpanjang sertifikat TLS untuk mendukung Koneksi HTTPS pada penayangan Knative.

Jika ingin menggunakan HTTPS,

  • Penampung Anda akan terus memproses di $PORT
  • Anda harus memilih cara menyediakan sertifikat TLS:

    • Gunakan sertifikat TLS terkelola, yang otomatis membuat sertifikat TLS dibuat sesuai kebutuhan, dan akan diperpanjang secara otomatis. Halaman ini menjelaskan hal tersebut , yang tersedia dalam versi Google Kubernetes Engine yang didukung.
    • Menggunakan sertifikat Anda sendiri, di mana Anda bertanggung jawab untuk mendapatkan dan memperpanjang sertifikat. Dalam beberapa situasi, dijelaskan di bagian Batasan, Anda harus menggunakan sertifikat Anda sendiri.
  • Jika menggunakan sertifikat terkelola, Anda juga harus petakan domain kustom Anda untuk menggunakan fitur sertifikat terkelola.

Menggunakan HTTPS dan HTTP

Secara default, jika Anda menggunakan sertifikat terkelola, cluster, atau inferensi Knative layanan dengan sertifikat terkelola terekspos ke traffic HTTP dan HTTPS. Jika Anda hanya menginginkan traffic HTTPS, Anda dapat mengaktifkan pengalihan HTTPS untuk memaksa semua lalu lintas agar menggunakan HTTPS saja.

Pemecahan masalah

Jika Anda mengalami masalah saat menggunakan sertifikat TLS terkelola, lihat halaman pemecahan masalah TLS terkelola.

Batasan

Pertimbangan berikut berlaku untuk penggunaan sertifikat TLS terkelola fitur:

  • Sertifikat TLS terkelola dinonaktifkan dan tidak didukung untuk penayangan Knative cluster pribadi di Google Cloud.
  • Untuk menggunakan fitur sertifikat terkelola, layanan Anda harus ditampilkan secara eksternal: tidak boleh berupa layanan lokal cluster atau layanan yang diekspos oleh Virtual Private Cloud.
  • Fitur sertifikat terkelola hanya berfungsi dengan Cloud Service Mesh. Istio add-on atau konfigurasi Istio lainnya tidak didukung.
  • Fitur ini menggunakan Let's Encrypt, yang memiliki batas kuota awal 50 sertifikat TLS per minggu per domain yang terdaftar. Anda dapat meminta penambahan kuota dengan mengikuti Dokumentasi Let's Encrypt.
  • Saat menjalankan cluster penayangan Knative di platform lain, seperti infrastruktur lokal atau AWS, fitur ini akan dinonaktifkan. Untuk menggunakan fitur ini, Anda harus memastikan bahwa cluster Anda dapat mengakses Let's Encrypt, dan Cloud Service Mesh Anda layanan masuk terekspos ke internet publik.

Sebelum memulai

Petunjuk di halaman ini mengasumsikan hal berikut:

  • Anda telah men-deploy layanan penayangan Knative ke gugus ini.
  • Anda memiliki domain. Jika Anda tidak memiliki domain, Anda bisa mendapatkannya dari Google atau dari penyedia vendor domain.
  • Anda membuat pemetaan domain untuk layanan dan memperbarui DNS Anda rekam data yang sesuai dengan mengikuti petunjuk yang ada di halaman pemetaan domain.
  • Gunakan Cloud DNS, atau server DNS pilihan Anda.

Menonaktifkan sertifikat TLS terkelola dan HTTPS untuk seluruh cluster

Menonaktifkan TLS terkelola untuk cluster dengan memperbarui 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:

  1. Tambahkan anotasi domains.cloudrun.com/disableAutoTLS: "true"`:

    kubectl annotate domainmappings DOMAIN domains.cloudrun.com/disableAutoTLS=true
  2. Pastikan HTTPS tidak berfungsi:

    curl https://DOMAIN

  3. 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: pada hasil dari perintah di atas: URL harus memiliki http, bukan https.

Mengaktifkan kembali sertifikat TLS dan HTTPS terkelola

Untuk mengaktifkan kembali TLS terkelola:

  1. Jika Anda belum melakukannya, buat pemetaan domain untuk layanan Anda dan perbarui data DNS dengan mengikuti petunjuk di halaman pemetaan domain.

  2. Mengaktifkan sertifikat TLS dan HTTPS terkelola dengan memperbarui ConfigMap config-domainmapping:

    kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Enabled"}}'
  3. 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

    Diperlukan waktu 20 detik hingga 2 menit agar Kcert siap. Jika jika mengalami masalah, lihat petunjuk pemecahan masalah untuk tindakan ini. aplikasi baru.

Memverifikasi keberhasilan

  1. Verifikasi bahwa 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

  2. Periksa kolom url: pada hasil dari perintah di atas: URL harus memiliki https, bukan http.

  3. Periksa alamat IP dari perintah di atas, yang tercantum di bawah resourceRecords:rrdata, lalu bandingkan dengan nilai yang Anda lihat saat mengeksekusi perintah host DOMAIN. Keduanya seharusnya sama.

Mengaktifkan pengalihan HTTPS untuk penayangan Knative

Jika Anda menggunakan fitur sertifikat TLS terkelola, secara default cluster akan terekspos ke lalu lintas HTTP dan HTTPS untuk alasan kompatibilitas mundur. Jika Anda ingin memaksa semua lalu lintas agar menggunakan HTTPS saja, 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.