Anda dapat menggunakan gateway ingress untuk mengaktifkan HTTPS dan pemuatan sertifikat dinamis, memastikan keamanan gateway. Pendengar HTTPS dibuat dengan mengikat sertifikat ke instance Classic Load Balancer (CLB) dari gateway ingress. Instance CLB mendekripsi permintaan HTTPS menjadi HTTP dan meneruskan permintaan tersebut ke pod gateway ingress. Topik ini menjelaskan cara membuat pendengar HTTPS dengan mengikat sertifikat ke instance CLB dari gateway ingress.
Prasyarat
Langkah 1: Siapkan sertifikat yang ingin Anda ikat ke instance CLB
Sertifikat dan kunci privat telah dibuat
Jika Anda sudah memiliki sertifikat dan kunci privat untuk aliyun.com, beri nama kunci privat sebagai aliyun.com.key dan sertifikat sebagai aliyun.com.crt.
Tidak ada sertifikat dan kunci privat yang dibuat
Jika Anda belum membuat sertifikat dan kunci privat, gunakan openssl untuk menghasilkan sertifikat dan kunci privat untuk aliyun.com dengan langkah-langkah berikut:
Jalankan perintah berikut untuk membuat sertifikat root dan kunci privat.
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -subj '/O=myexample Inc./CN=aliyun.com' -keyout aliyun.root.key -out aliyun.root.crtBuat sertifikat SSL.
Di Konsol Server Load Balancer CLB, pilih dari panel navigasi di sebelah kiri.
Di halaman Certificate Management, klik Create Certificate.
Di panel Create Certificate, pilih Alibaba Cloud Issued Certificate, lalu klik Create SSL Certificate di bagian bawah daftar sertifikat.
Di halaman Digital Certificate Management Service, pilih Certificate Management > SSL Certificate Management dari panel navigasi di sebelah kiri.
Klik Upload Certificate di tab Upload Certificate. Masukkan Certificate Name sebagai aliyun.com, lalu unggah sertifikat root dan kunci privat yang dihasilkan ke bidang Certificate File dan Certificate Private Key. Klik OK dan abaikan prompt rantai sertifikat.
Buat sertifikat di Konsol Server Load Balancer CLB. Untuk informasi lebih lanjut, lihat Pilih Sertifikat Diterbitkan Alibaba Cloud.
Langkah 2: Buat pendengar HTTPS
ASM memungkinkan Anda membuat gateway ingress kustom dengan mengonfigurasi parameter dalam file YAML. Untuk informasi lebih lanjut, lihat Gunakan KubeAPI untuk Mengelola Gateway Ingress.
Tambahkan konten berikut ke file ingressgateway.yaml.
spec: .... ports: - name: http-0 port: 80 protocol: HTTP targetPort: 80 - name: https-1 port: 443 protocol: HTTPS targetPort: 80 .... serviceAnnotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}" service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: 'https:443' .... serviceType: LoadBalancerBuat instance CLB menggunakan
serviceAnnotations. Instance CLB mendekripsi permintaan HTTPS yang diterima pada port 443 menjadi permintaan HTTP dan meneruskannya ke port 80 dari pod gateway ingress. Nilai${YOUR_CERT_ID}dalam file YAML diperoleh dari Langkah 1.Jalankan perintah berikut untuk menerapkan gateway ingress.
kubectl apply -f ingressgateway.yaml
Langkah 3: Periksa apakah pendengar HTTPS berfungsi
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih .
Di halaman Ingress Gateway, periksa Endpoint dari gateway target.
Endpoint adalah alamat IP dari gateway target.
Jalankan perintah berikut untuk mengakses layanan productpage melalui HTTPS.
Gunakan
${Alamat IP gateway ingress}yang diperoleh pada langkah sebelumnya.curl -k -H Host:a.aliyun.com --resolve a.aliyun.com:443:${Alamat IP gateway ingress} https://a.aliyun.com/productpage -IContoh keluaran:
HTTP/2 200 date: Fri, 13 Jan 2023 07:11:45 GMT content-type: text/html; charset=utf-8 content-length: 5294 vary: Accept-Encoding x-envoy-upstream-service-time: 23Traffic terenkripsi didekripsi menjadi teks biasa saat melewati instance CLB, lalu masuk ke kluster. Hasil ini menunjukkan bahwa pendengar HTTPS berfungsi.