Mekanisme autentikasi bersama HTTPS memastikan bahwa server dan klien dapat saling memverifikasi identitas. Anda dapat menggunakan autentikasi bersama HTTPS untuk menjamin keamanan layanan di sektor keuangan, IoT, layanan internal perusahaan, atau layanan publik yang melibatkan perlindungan privasi, serta dalam skenario di mana layanan hanya diekspos kepada klien tertentu.
Perbandingan antara autentikasi satu arah HTTPS dan autentikasi bersama HTTPS
Autentikasi satu arah HTTPS: Klien mengunduh sertifikat SSL atau TLS dari server untuk memverifikasi identitas server dan membuat saluran aman. Server tidak dapat memverifikasi identitas klien.
Autentikasi bersama HTTPS: Klien mengunduh sertifikat SSL atau TLS dari server untuk memverifikasi identitas server. Pada saat yang sama, klien mengirimkan sertifikat SSL atau TLS miliknya ke server sebagai bukti identitas. Saluran aman hanya dibuat setelah klien dan server saling memverifikasi identitas. Dalam banyak kasus, server memiliki sertifikat root CA, dan klien memiliki sertifikat SSL atau TLS yang ditandatangani dan diterbitkan berdasarkan sertifikat root CA tersebut. Oleh karena itu, server dapat memverifikasi identitas klien. Menggunakan autentikasi bersama HTTPS memungkinkan Anda mengekspos layanan hanya kepada klien tepercaya, mencegah serangan man-in-the-middle, dan meningkatkan keamanan layanan.
Prasyarat
Sertifikat SSL atau TLS telah dikonfigurasi dengan mengikuti langkah-langkah di Konfigurasikan Sertifikat untuk Komunikasi Terenkripsi melalui HTTPS.
Sertifikat root CA telah diperoleh. Anda bisa mendapatkan sertifikat root CA melalui salah satu cara berikut:
Beli sertifikat di konsol Layanan Manajemen Sertifikat. Untuk informasi lebih lanjut, lihat Beli dan Aktifkan CA Pribadi.
(Opsional) Ikuti langkah-langkah di (Opsional) Langkah 1: Hasilkan Sertifikat CA Tanda Tangan Sendiri untuk menghasilkan sertifikat tanda tangan sendiri.
(Opsional) Langkah 1: Hasilkan sertifikat CA tanda tangan sendiri
Anda dapat mengikuti langkah-langkah berikut untuk menghasilkan sertifikat root CA.
Jalankan perintah berikut untuk membuat kunci privat:
openssl genrsa -out ca.key 4096Jalankan perintah berikut untuk membuat permintaan penandatanganan sertifikat (CSR):
openssl req -new -out ca.csr -key ca.keyTentukan informasi sertifikat setelah menjalankan perintah di atas. Blok kode sampel berikut menunjukkan parameter dan nilai sampel:
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 []:Tabel berikut menjelaskan parameter.
Parameter
Diperlukan
Deskripsi
Nama Negara
Ya
Kode negara, biasanya terdiri dari dua huruf, seperti cn (Tiongkok).
Nama Provinsi atau Wilayah
Ya
Nama provinsi atau wilayah otonom.
Nama Lokalitas
Ya
Nama kota.
Nama Organisasi
Ya
Nama organisasi, seperti nama perusahaan.
Nama Unit Organisasi
Ya
Nama departemen.
Nama Umum
Tidak
Nama umum yang digunakan.
Alamat Email
Tidak
Alamat email yang digunakan untuk menghubungi administrator sertifikat.
Kata sandi tantangan
Tidak
Kata sandi yang digunakan untuk meningkatkan keamanan CSR. Dalam contoh ini, tidak ada kata sandi yang diatur.
Jalankan perintah berikut untuk membuat sertifikat root CA:
openssl x509 -req -in ca.csr -out ca.crt -signkey ca.key -CAcreateserial -days 3650Setelah operasi di atas dilakukan, jalankan perintah
lsuntuk melihat file kunci privat dan file sertifikat dari sertifikat root di direktori saat ini.ca.crt ca.csr ca.keyca.crtadalah file sertifikat root CA,ca.csradalah file CSR, danca.keyadalah file kunci privat.
Langkah 2: Unggah sertifikat
Masuk ke konsol Layanan Manajemen Sertifikat. Di bilah navigasi di bagian atas, pilih Outside Chinese Mainland dari daftar drop-down wilayah. Di panel navigasi di sebelah kiri, klik Certificate Application Repository.
Di halaman Certificate Application Repository, klik Create Repository. Di panel Create Repository, atur parameter berikut dan klik OK.
Parameter
Deskripsi
Nama Repositori
Nama repositori. Anda dapat menentukan nama kustom.
Sumber Data
Pilih Upload CA Certificates untuk mengunggah sertifikat pribadi yang ditandatangani dan diterbitkan oleh otoritas sertifikat pihak ketiga.
Di halaman Certificate Application Repository, klik repositori yang Anda buat. Lalu, klik Uploaded Certificates.
Di panel CA Information, atur parameter berdasarkan tabel berikut untuk mengunggah sertifikat CA yang Anda buat di Langkah 3 dan klik Confirm and Enable.
Parameter
Deskripsi
Package Name
Masukkan nama kustom untuk sertifikat yang ingin Anda unggah.
CA Certificates
Masukkan konten file sertifikat pribadi atau klik Upload and Parse File untuk mengunggah file sertifikat.
Klik Details di sebelah kanan Sertifikat, lalu catat pengenal sertifikat.
Langkah 3: Gunakan sertifikat root CA untuk menghasilkan sertifikat klien
Jalankan perintah berikut untuk menghasilkan kunci privat untuk sertifikat klien:
openssl genrsa -out client.key 4096Jalankan perintah berikut untuk menghasilkan CSR untuk membuat sertifikat klien:
openssl req -new -out client.csr -key client.keyTentukan informasi sertifikat setelah menjalankan perintah di atas. Blok kode sampel berikut menunjukkan parameter dan nilai sampel:
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 []:Tabel berikut menjelaskan parameter.
Parameter
Diperlukan
Deskripsi
Nama Negara
Ya
Kode negara, biasanya terdiri dari dua huruf, seperti cn (Tiongkok).
Nama Provinsi atau Wilayah
Ya
Nama provinsi atau wilayah otonom.
Nama Lokalitas
Ya
Nama kota.
Nama Organisasi
Ya
Nama organisasi, seperti nama perusahaan.
Nama Unit Organisasi
Ya
Nama departemen.
Nama Umum
Tidak
Nama umum yang digunakan.
Alamat Email
Tidak
Alamat email yang digunakan untuk menghubungi administrator sertifikat.
Kata sandi tantangan
Tidak
Kata sandi yang digunakan untuk meningkatkan keamanan CSR. Dalam contoh ini, tidak ada kata sandi yang diatur.
Jalankan perintah berikut untuk menghasilkan sertifikat klien:
openssl x509 -req -in client.csr -out client.crt -signkey client.key -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650ca.crtdanca.keyadalah file sertifikat root CA dan file kunci privat.Setelah operasi di atas dilakukan, jalankan perintah
lsuntuk melihat sertifikat klien yang dihasilkan di direktori saat ini.client.crt client.csr client.keyclient.crtadalah file sertifikat klien yang ditandatangani berdasarkan sertifikat root CA,client.csradalah file CSR, danclient.keyadalah file kunci privat klien.
Langkah 4: Aktifkan dan uji autentikasi bersama
Aktifkan autentikasi bersama untuk pendengar HTTPS.
Jalankan perintah berikut untuk memodifikasi AlbConfig:
kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.Tambahkan bidang
caEnabledke pendengar HTTPS dan atur nilainya menjaditrue, serta tambahkan bidangcaCertificates.CertificateIdke pendengar dan atur nilainya menjadi pengenal sertifikat root CA yang diperoleh di Langkah 2.apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: #... spec: config: #... listeners: - port: 443 protocol: HTTPS caEnabled: true # Tambahkan bidang caEnabled dan atur nilainya menjadi true. caCertificates: - CertificateId: 0e40dda998174723af39d37fcaf***** # Tentukan pengenal sertifikat root CA yang diperoleh di Langkah 2. certificates: #...
Uji autentikasi bersama.
Jalankan perintah berikut untuk memeriksa Ingress:
kubectl get ingressKeluaran yang diharapkan:
NAME CLASS HOSTS ADDRESS PORTS AGE https-ingress https-ingressclass demo.alb.ingress.top alb-********.alb.aliyuncs.com 80, 443 83mCatat nilai di kolom
HOSTSdanADDRESS.Jalankan perintah berikut untuk mengakses layanan dengan sertifikat klien dan kunci privat dalam topik ini. Ganti
demo.alb.ingress.topdanalb-********.alb.aliyuncs.comdengan nilai yang diperoleh pada langkah sebelumnya.curl -H HOST:demo.alb.ingress.top -k https://alb-********.alb.aliyuncs.com --cert client.crt --key client.keyJika keluaran berikut dikembalikan, autentikasi bersama telah dikonfigurasi:
old
(Opsional) Langkah 5: Nonaktifkan autentikasi bersama
Jalankan perintah berikut untuk memodifikasi AlbConfig:
kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.Atur bidang caEnabled menjadi
falseuntuk menonaktifkan autentikasi bersama.apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: #... spec: config: #... listeners: - port: 443 protocol: HTTPS caEnabled: false # Atur nilainya menjadi false. caCertificates: - CertificateId: 0e40dda998174723af39d37fcaf***** certificates: #...
Referensi
Untuk mengaktifkan HTTP/3 untuk pendengar, lihat Gunakan Pendengar QUIC untuk Mendukung HTTP/3.
Jika layanan web Anda rentan terhadap intrusi atau memerlukan keamanan yang lebih tinggi, Anda dapat menggunakan instance Application Load Balancer (ALB) yang diaktifkan WAF. Untuk informasi lebih lanjut, lihat Gunakan Instance ALB yang Diaktifkan WAF untuk Melindungi Aplikasi.