Otentikasi timbal balik HTTPS memungkinkan server dan klien saling memverifikasi identitas satu sama lain. Fitur ini dapat digunakan pada ALB Ingress dalam skenario perbankan, layanan keuangan, IoT, layanan internal, atau pemerintahan yang melibatkan data sensitif atau memerlukan pembatasan akses hanya untuk klien tepercaya.
Cara kerja
| HTTPS one-way authentication | HTTPS mutual authentication | |
|---|---|---|
| Client verifies server | Yes | Yes |
| Server verifies client | No | Yes |
| Client holds | — | SSL or TLS certificate signed by root CA |
| Server holds | Server certificate | Root CA certificate |
Server menggunakan sertifikat root CA-nya untuk memverifikasi sertifikat klien sebelum membangun koneksi.
Prasyarat
Pastikan Anda telah:
-
Mengonfigurasi sertifikat SSL atau TLS pada listener ALB.
-
Memperoleh sertifikat root CA melalui salah satu cara berikut:
-
Membeli private CA di Certificate Management Service
-
(Opsional) Langkah 1: Buat sertifikat CA self-signed
Lewati langkah ini jika Anda sudah memiliki sertifikat root CA.
-
Buat kunci privat:
openssl genrsa -out ca.key 4096 -
Buat permintaan penandatanganan sertifikat (CSR):
Field Required Description Country Name Yes Kode negara dua huruf, misalnya, cnState or Province Name Yes Nama provinsi atau wilayah Locality Name Yes Nama kota Organization Name Yes Nama organisasi Organizational Unit Name Yes Nama departemen Common Name No Nama yang umum digunakan Email Address No Email administrator sertifikat A challenge password No Password keamanan CSR opsional. Biarkan kosong jika tidak diperlukan openssl req -new -out ca.csr -key ca.keyOpenSSL akan meminta input untuk bidang-bidang berikut:
Country Name (2 letter code) [XX]:cn State or Province Name (full name) []:bj Locality Name (eg, city) [Default City]:bj Organization Name (eg, company) [Default Company Ltd]:alibaba Organizational Unit Name (eg, section) []:test Common Name (eg, your name or your servers hostname) []:root Email Address []:example@ali A challenge password []: -
Buat sertifikat root CA dengan masa berlaku 3.650 hari:
File Description ca.crtSertifikat root CA ca.csrFile CSR ca.keyKunci privat openssl x509 -req -in ca.csr -out ca.crt -signkey ca.key -CAcreateserial -days 3650Jalankan
lsuntuk memastikan file output tersedia:ca.crt ca.csr ca.key
Langkah 2: Unggah sertifikat CA
Unggah sertifikat root CA ke Certificate Management Service untuk mendapatkan identifier sertifikat yang akan digunakan dalam AlbConfig.
-
Masuk ke Konsol Certificate Management Service. Pilih wilayah Outside Chinese Mainland. Di panel navigasi kiri, klik Certificate Application Repository.
-
Pada halaman Certificate Application Repository, klik Create Repository. Di panel Create Repository, atur parameter berikut lalu klik OK.
Parameter Description Repository Name Nama repositori kustom Data Source Pilih Upload CA Certificates untuk mengunggah sertifikat yang ditandatangani oleh CA pihak ketiga -
Klik repositori Anda, lalu klik Uploaded Certificates.
-
Di panel CA Information, isi bidang berikut lalu klik Confirm and Enable.
Parameter Description Package Name Nama sertifikat kustom CA Certificates Tempel konten sertifikat, atau klik Upload and Parse File -
Klik Details untuk sertifikat yang telah diunggah dan catat identifier sertifikat untuk Langkah 4.
Langkah 3: Buat sertifikat klien
Gunakan sertifikat root CA untuk menandatangani sertifikat klien.
-
Buat kunci privat untuk klien:
openssl genrsa -out client.key 4096 -
Buat CSR untuk sertifikat klien:
openssl req -new -out client.csr -key client.keyIsi bidang yang sama seperti pada Langkah 1. Nilainya dapat berbeda dari sertifikat CA.
-
Tandatangani sertifikat klien menggunakan root CA:
File Description client.crtSertifikat klien yang ditandatangani oleh root CA client.csrFile CSR client.keyKunci privat klien openssl x509 -req -in client.csr -out client.crt -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650ca.crtdanca.keyberasal dari Langkah 1. Jalankanlsuntuk memastikan output tersedia:client.crt client.csr client.key
Langkah 4: Aktifkan dan uji otentikasi timbal balik
Aktifkan otentikasi timbal balik
-
Buka AlbConfig untuk diedit:
kubectl edit albconfig <ALBCONFIG_NAME>Ganti
<ALBCONFIG_NAME>dengan nama AlbConfig Anda. -
Pada konfigurasi listener HTTPS (port 443), tambahkan
caEnabled: truedan aturcaCertificates.CertificateIdke identifier sertifikat dari Langkah 2:apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: #... spec: config: #... listeners: - port: 443 protocol: HTTPS caEnabled: true # Enable mutual authentication caCertificates: - CertificateId: 0e40dda998174723af39d37fcaf***** # Certificate identifier from Step 2 certificates: #...
Uji otentikasi timbal balik
-
Dapatkan hostname dan alamat Ingress:
kubectl get ingressOutput yang diharapkan:
NAME CLASS HOSTS ADDRESS PORTS AGE https-ingress https-ingressclass demo.alb.ingress.top alb-********.alb.aliyuncs.com 80, 443 83mCatat nilai
HOSTSdanADDRESS. -
Kirim permintaan dengan sertifikat klien. Ganti
demo.alb.ingress.topdanalb-********.alb.aliyuncs.comdengan nilai dari langkah sebelumnya:curl -H HOST:demo.alb.ingress.top -k https://alb-********.alb.aliyuncs.com --cert client.crt --key client.keyOutput yang diharapkan:
old
(Opsional) Langkah 5: Nonaktifkan otentikasi timbal balik
-
Buka AlbConfig untuk diedit:
kubectl edit albconfig <ALBCONFIG_NAME> -
Atur
caEnabledkefalse:apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: #... spec: config: #... listeners: - port: 443 protocol: HTTPS caEnabled: false # Disable mutual authentication caCertificates: - CertificateId: 0e40dda998174723af39d37fcaf***** certificates: #...