Pelajari cara mengonfigurasi penayangan Knative agar menggunakan sertifikat SSL/TLS Anda sendiri.
Atau, Anda dapat menggunakan sertifikat TLS terkelola, yang otomatis membuat dan memperpanjang sertifikat TLS melalui Mari Enkripsi
Untuk menggunakan sertifikat Anda sendiri, simpan sertifikat TLS di Kubernetes Secret, lalu konfigurasikan gateway masuk Cloud Service Mesh untuk menggunakannya rahasia.
Sebelum memulai
- Petunjuk ini mengasumsikan bahwa Anda telah memperoleh TLS. CA {i>root<i}.
- Anda harus mengonfigurasi domain kustom. Untuk mengetahui detailnya, lihat Memetakan domain kustom.
- Anda harus mengonfigurasi setiap layanan penayangan Knative Anda
yang menggunakan
gateway masuk
untuk menyalurkan traffic eksternal. Jika layanan yang ditujukan kepada
eksternal ini tidak
dikonfigurasi untuk menggunakan sertifikat
TLS Anda, layanan tidak akan dapat
memverifikasi koneksi HTTPS, sehingga tidak pernah mencapai status
ready
.
Menyimpan sertifikat TLS dalam Rahasia Kubernetes
Untuk menyimpan sertifikat ke dalam Secret:
Buka terminal, lalu buka direktori tempat sertifikat TLS Anda lokasi bisnis.
Gunakan perintah berikut untuk membuat rahasia yang menyimpan sertifikat Anda:
kubectl create --namespace INGRESS_NAMESPACE secret tls SECRET_NAME \ --key PRIVATE_KEY.pem \ --cert FULL_CHAIN.pem
Ganti:
- INGRESS_NAMESPACE dengan namespace
layanan masuk,
istio-ingressgateway
. Tentukanistio-system
jika Anda menginstal Cloud Service Mesh menggunakan konfigurasi default. - SECRET_NAME dengan nama yang ingin Anda gunakan untuk Rahasia Kubernetes.
- PRIVATE_KEY.pem dengan nama file yang menyimpan kunci pribadi sertifikat.
- FULL_CHAIN.pem dengan nama file yang menyimpan sertifikat publik.
- INGRESS_NAMESPACE dengan namespace
layanan masuk,
Anda kini dapat mengonfigurasi gateway masuk untuk menggunakan rahasia yang baru saja dibuat untuk sertifikat TLS Anda.
Mengonfigurasi gateway masuk untuk menggunakan sertifikat Anda
Ubah gateway masuk Cloud Service Mesh agar menggunakan rahasia yang Anda buat untuk sertifikat TLS:
Buka YAML gateway masuk dalam mode edit dengan menjalankan perintah berikut:
kubectl edit gateway knative-ingress-gateway --namespace knative-serving
Contoh konfigurasi gateway masuk default:
apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: ... # other skipped configuration ... spec: selector: istio: ingressgateway servers: - hosts: - '*' port: name: http number: 80 protocol: HTTP
Konfigurasikan gateway masuk untuk menggunakan secret Anda dengan menambahkan
hosts
,port
, dantls
ke YAML yang ada.Untuk mengonfigurasi semua layanan agar menggunakan secret yang sama: Tambahkan perintah berikut ke konfigurasi YAML Anda dan tentukan
"*"
sebagai atributhosts
nilai:... # other skipped configuration ... - hosts: - "*" port: name: https number: 443 protocol: HTTPS tls: mode: SIMPLE credentialName: SECRET_NAME
Ganti SECRET_NAME dengan nama rahasia yang Anda buat.
Untuk mengonfigurasi setiap layanan Anda secara terpisah: Tambahkan kode berikut ke konfigurasi YAML Anda dan tentukan nilai untuk
hosts
menggunakan nama dan namespace layanan:Untuk setiap layanan, Anda menentukan nilai untuk
hosts
,port
, dantls
atribut:... # other skipped configuration ... - hosts: - SERVICE_NAME.SERVICE_NAMESPACE.CUSTOM_DOMAIN port: number: 443 name: https-SERVICE_NAME protocol: HTTPS tls: mode: SIMPLE credentialName: SECRET_NAME
Ganti:
- SERVICE_NAME dengan nama penayangan Knative layanan. Setiap layanan yang menggunakan gateway masuk untuk menyalurkan layanan eksternal traffic harus dikonfigurasi satu per satu.
- SERVICE_NAMESPACE dengan nama namespace tempat layanan berjalan.
- CUSTOM_DOMAIN dengan domain kustom yang Anda mengonfigurasi layanan yang akan digunakan.
- SECRET_NAME dengan nama rahasia yang akan Anda ingin layanan digunakan. Jika Anda membuat beberapa secret untuk sertifikat TLS, Anda dapat menentukan rahasia mana yang digunakan oleh setiap layanan.
Simpan perubahan Anda.
Anda kini dapat menggunakan protokol HTTPS untuk mengakses penayangan Knative yang di-deploy layanan IT perusahaan mereka.
Contoh
- Konfigurasi semua layanan:
Contoh ini menunjukkan cara mengonfigurasi semua layanan agar menggunakan Rahasia
TLSsecret
:apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: ... # other skipped configuration ... spec: selector: istio: ingressgateway servers: - hosts: - "*" port: name: http number: 80 protocol: HTTP - hosts: - "*" port: name: https number: 443 protocol: HTTPS tls: mode: SIMPLE credentialName: TLSsecret
- Mengonfigurasi layanan individual:
Contoh ini menunjukkan cara mengonfigurasi ketiga komponen layanan yang melayani traffic internet:
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: ... # other skipped configuration ... spec: selector: istio: ingressgateway servers: - hosts: - "*" port: name: http number: 80 protocol: HTTP - hosts: - prodservice.prodnamespace.my-custom-domain.com port: number: 443 name: https-prodservice protocol: HTTPS tls: mode: SIMPLE credentialName: TLSsecret - hosts: - experiment.namespace.my-custom-domain.com port: number: 443 name: https-experiment protocol: HTTPS tls: mode: SIMPLE credentialName: TLSsecret - hosts: - fallbackservice.anothernamespace.my-custom-domain.com port: number: 443 name: https-fallbackservice protocol: HTTPS tls: mode: SIMPLE credentialName: anotherTLSsecret