Aktifkan otentikasi timbal balik pada ALB untuk mewajibkan klien dan server saling memverifikasi identitas sebelum membangun koneksi. Fitur ini mencegah serangan man-in-the-middle dan akses tidak sah dalam skenario berkeamanan tinggi seperti transaksi keuangan dan layanan kesehatan.
Ikhtisar fitur
Mengapa menggunakan otentikasi timbal balik
Sebagian besar aplikasi web menggunakan otentikasi satu arah untuk membangun koneksi HTTPS. Dalam skema ini, klien memverifikasi identitas server guna memastikan bahwa klien terhubung ke server yang benar.
Untuk aplikasi yang memerlukan keamanan lebih tinggi, server juga harus memverifikasi identitas klien. Otentikasi timbal balik memastikan hanya klien yang sah yang dapat mengakses layanan, sehingga mengurangi risiko serangan man-in-the-middle dan akses tidak sah.
Kasus penggunaan
Transaksi keuangan, layanan kesehatan, perbankan, dan pembayaran online—skenario apa pun di mana sistem harus memverifikasi identitas klien selain server.
Jika Anda tidak perlu mengotentikasi klien, Anda tidak perlu menggunakan otentikasi timbal balik.
Batasan
Hanya instans ALB Edisi Standard dan Edisi WAF-Enhanced yang mendukung otentikasi timbal balik. Instans ALB Edisi Dasar tidak mendukung fitur ini.
Hanya pendengar HTTPS yang mendukung otentikasi timbal balik. Pendengar QUIC dan HTTP tidak mendukung fitur ini.
Contoh skenario
Sebuah perusahaan menerapkan platform transaksi online yang awalnya hanya menggunakan otentikasi HTTPS satu arah. Perangkat tidak sah mencoba mengakses sistem, menimbulkan risiko kebocoran data dan manipulasi transaksi. Seiring pertumbuhan trafik, platform juga menghadapi tekanan performa yang meningkat saat puncak beban.
Untuk mengatasi masalah tersebut, perusahaan menerapkan instans ALB dan mengaktifkan otentikasi timbal balik.
ALB mendistribusikan permintaan klien ke server backend, memastikan performa stabil dan waktu respons cepat bahkan selama puncak konkurensi tinggi.
Dengan otentikasi timbal balik diaktifkan, semua klien harus menyediakan sertifikat yang valid untuk membangun koneksi, mencegah akses tidak sah serta mengurangi risiko kebocoran data dan manipulasi transaksi.
Prasyarat
Anda telah membeli atau mengunggah sertifikat server di Layanan Manajemen Sertifikat.
Topik ini menggunakan sertifikat server yang dibeli dari Konsol Layanan Manajemen Sertifikat Alibaba Cloud sebagai contoh.
CatatanSaat Anda membeli Sertifikat SSL, Anda harus mengaitkannya dengan nama domain. Pastikan Anda memiliki nama domain yang valid dan dapat diakses.
-
Untuk otentikasi timbal balik, Anda juga memerlukan sertifikat CA. Anda dapat membeli dan mengaktifkan sertifikat CA subordinat (memerlukan kuota sertifikat yang tersedia) atau mengunggah sertifikat root CA tanda tangan sendiri atau sertifikat CA subordinat tanda tangan sendiri.
Anda telah membuat VPC (VPC1), dan membuat dua instans ECS (ECS01 dan ECS02) di VPC1. Layanan aplikasi diterapkan di kedua instans tersebut.
Contoh ini menggunakan Alibaba Cloud Linux 3 sebagai sistem operasi dan Nginx untuk mengonfigurasi layanan HTTPS.
-
Anda telah membuat instans ALB Edisi Standard atau Edisi yang diaktifkan WAF.
Anda telah membuat grup server dan menambahkan ECS01 dan ECS02 sebagai server backend.
Jika Anda ingin instans ALB berkomunikasi dengan server backend melalui HTTPS, pilih HTTPS sebagai protokol backend saat membuat grup server dan pastikan layanan HTTPS telah diterapkan di server backend.
Prosedur
Langkah 1: Konfigurasi sertifikat klien
Anda harus menyiapkan dan mengekspor sertifikat klien.
Topik ini menjelaskan dua metode untuk mendapatkan sertifikat CA. Anda dapat membeli sertifikat CA dan mengajukan sertifikat klien di Layanan Manajemen Sertifikat, atau mengunggah sertifikat CA tanda tangan sendiri ke Layanan Manajemen Sertifikat.
1. Siapkan sertifikat klien
Dari konsol
Untuk informasi lebih lanjut, lihat Ajukan sertifikat pribadi.
Masuk ke Konsol Layanan Manajemen Sertifikat.
Di panel navigasi kiri, pilih . Di halaman Private Certificate Management, pilih wilayah tempat layanan PCA berada.
Di tab Private CAs, temukan CA subordinat target, lalu klik Apply for Certificate di kolom Actions.
Di panel Apply for Certificate, konfigurasikan pengaturan sertifikat seperti yang dijelaskan dalam tabel berikut, lalu klik Confirm.
Dalam contoh ini, saat mengajukan sertifikat klien, atur Certificate Type ke Client Certificate dan masukkan Personal Name untuk mengidentifikasi pengguna klien secara unik. Anda dapat mempertahankan nilai default untuk parameter lainnya atau menyesuaikannya sesuai kebutuhan.
Setelah Anda mengirimkan permohonan, CA pribadi akan langsung menerbitkan sertifikat tersebut. Anda kemudian dapat mengklik Certificates di kolom Actions untuk CA subordinat guna melihat sertifikat yang telah diterbitkan.
Tanda tangan sendiri
Masuk ke ECS01 dan jalankan perintah berikut untuk menghasilkan sertifikat root CA tanda tangan sendiri.
Instans ALB mendukung otentikasi timbal balik menggunakan sertifikat root CA tanda tangan sendiri atau sertifikat CA perantara tanda tangan sendiri. Contoh ini menggunakan sertifikat root CA tanda tangan sendiri.
Jalankan perintah berikut untuk membuat kunci privat untuk sertifikat root CA:
openssl genrsa -out root.key 4096Jalankan perintah berikut untuk membuat permintaan penandatanganan sertifikat (CSR) untuk sertifikat root CA:
openssl req -new -out root.csr -key root.keyMasukkan informasi yang diminta. Kode berikut memberikan contoh:
CatatanPastikan Common Name untuk sertifikat CA bersifat unik dan tidak sama dengan Common Name untuk sertifikat server atau sertifikat klien.
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 []:a****@example.com A challenge password []: An optional company name []:Jalankan perintah berikut untuk membuat sertifikat root CA:
openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650Output berikut dikembalikan:
Signature ok subject=C = cn, ST = bj, L = bj, O = alibaba, OU = test, CN = root, emailAddress = a****@example.com Getting Private KeyJalankan perintah
lsuntuk melihat sertifikat root CA yang dihasilkanroot.crtdan kunci privatnyaroot.key.Anda dapat mengunduh file sertifikat root CA ini ke komputer Anda untuk digunakan nanti.
Unggah sertifikat root CA tanda tangan sendiri ke Layanan Manajemen Sertifikat.
Masuk ke Konsol Layanan Manajemen Sertifikat.
Di panel navigasi kiri, pilih .
Di halaman Certificate Application Repository, klik Create Repository. Di panel Create repository, atur Data source menjadi Uploaded CA certificates lalu klik OK.
Di halaman Certificate Application Repository, klik repositori yang telah Anda buat.
Di halaman Certificates, klik Uploaded Certificate. Di panel CA information, unggah file sertifikat root CA
root.crtlalu klik Confirm and Enable.
2. Ekspor sertifikat klien
Ekspor dari konsol
Untuk menggunakan sertifikat klien yang dibeli dari konsol untuk otentikasi timbal balik, ekspor dengan mengikuti langkah-langkah berikut:
Di tab Private CAs, temukan CA subordinat target, lalu klik Certificates di kolom Actions.
Di halaman Certificates, temukan sertifikat pribadi target, lalu klik Download di kolom Actions.
Di kotak dialog Download Certificate, pilih format sertifikat yang ingin diunduh, lalu klik Confirm and Download. Jika Anda memilih Include Trust Chain, sertifikat yang diunduh mencakup rantai sertifikat lengkap.
Dalam contoh ini, pilih PFX untuk Format sertifikat. Format ini dapat dikenali oleh browser.
File yang diunduh mencakup file sertifikat klien dengan ekstensi
.pfxdan file teks dengan ekstensi.txtyang berisi kata sandi enkripsi untuk kunci privat klien.
Ekspor tanda tangan sendiri
Untuk menggunakan sertifikat klien yang dihasilkan dari sertifikat CA tanda tangan sendiri untuk otentikasi timbal balik, ikuti langkah-langkah berikut untuk menghasilkannya:
Masuk ke ECS01 dan lakukan langkah-langkah berikut 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 sertifikat klien:
openssl req -new -out client.csr -key client.keyMasukkan informasi yang diminta. Kode berikut memberikan contoh:
CatatanPastikan Common Name untuk sertifikat klien bersifat unik dan tidak sama dengan Common Name untuk sertifikat server, sertifikat root, atau sertifikat klien lainnya.
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) []:client-alb-user Email Address []:username@example.com A challenge password []: An optional company name []:Jalankan perintah berikut untuk menghasilkan sertifikat klien.
openssl x509 -req -in client.csr -out client.crt -CA root.crt -CAkey root.key -CAcreateserial -days 3650Output berikut dikembalikan:
Signature ok subject=C = cn, ST = bj, L = bj, O = alibaba, OU = test, CN = client-alb-user, emailAddress = username@example.com Getting CA Private KeyJalankan perintah berikut untuk mengonversi sertifikat klien yang dihasilkan
client.crtmenjadi file PKCS12, yang dapat dikenali oleh browser. Masukkan kata sandi enkripsi kunci privat klien saat diminta.openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12Jalankan perintah
lsuntuk melihat file sertifikat klienclient.p12yang dihasilkan.Anda dapat mengunduh file sertifikat klien ke komputer Anda untuk digunakan nanti di klien.
Langkah 2: Konfigurasi pendengar otentikasi timbal balik
Di bilah navigasi atas Konsol ALB, pilih wilayah tempat instans ALB diterapkan. Di halaman Instances, temukan instans ALB yang ingin Anda kelola dan klik ID-nya.
Di halaman detail instans, klik tab Listener lalu klik Create Listener. Konfigurasikan parameter dan klik Next.
Dalam contoh ini, atur Select Listener Protocol menjadi HTTPS dan Listener Port menjadi 443. Anda dapat mempertahankan nilai default untuk parameter pendengar HTTPS lainnya atau mengubahnya sesuai kebutuhan.
Di langkah SSL Certificate, pilih sertifikat server yang telah Anda beli. Kemudian, aktifkan Enable Mutual Authentication dan pilih sumber sertifikat CA beserta sertifikat yang sesuai. Terakhir, pilih kebijakan keamanan TLS lalu klik Next.
Atur CA Certificate Source menjadi Alibaba Cloud. Di daftar drop-down Default CA Certificate, pilih sertifikat CA yang telah Anda ajukan di Langkah 1: Konfigurasi sertifikat klien.
Atur CA Certificate Source menjadi Third-party. Di daftar drop-down Default CA Certificate, pilih sertifikat CA tanda tangan sendiri yang telah Anda unggah di Langkah 1: Konfigurasi sertifikat klien.
Di langkah Server Group, pilih Server Type dan Server Type backend. Tinjau informasi tentang server backend ECS01 dan ECS02, lalu klik Next.
Di langkah Confirm, tinjau konfigurasi lalu klik Submit.
Langkah 3: Konfigurasi resolusi DNS
Untuk lingkungan produksi, kami merekomendasikan agar Anda membuat Rekaman CNAME untuk memetakan nama domain kustom Anda ke nama DNS instans ALB.
Di panel navigasi kiri Konsol ALB, pilih . Di halaman Instances, salin nama DNS instans ALB yang telah dibuat.
Lakukan langkah-langkah berikut untuk menambahkan Rekaman CNAME.
Di halaman Resolusi DNS, temukan nama domain kustom target lalu klik DNS Settings di kolom Operations.
CatatanJika nama domain Anda tidak terdaftar di Alibaba Cloud, Anda harus terlebih dahulu menambahkan nama domain Anda ke konsol DNS Alibaba Cloud sebelum dapat mengonfigurasi pengaturan DNS.
Di halaman pengaturan DNS, klik Add DNS record, konfigurasikan Rekaman CNAME, lalu klik OK.
Dalam contoh ini, atur Record type menjadi CNAME dan Record value menjadi nama DNS instans ALB. Anda dapat mempertahankan nilai default untuk parameter Rekaman DNS lainnya atau mengubahnya sesuai kebutuhan.
Langkah 4: Uji otentikasi timbal balik
Contoh ini menggunakan klien Windows dan browser Chrome.
Instal sertifikat klien yang diekspor di klien.
Klik ganda file sertifikat klien yang diunduh dan ikuti petunjuk di wizard impor sertifikat untuk menginstal sertifikat klien.
Di browser, masukkan
https://<nama domain kustom Anda>. Di kotak dialog yang muncul, pilih sertifikat yang akan digunakan untuk otentikasi klien.Refresh browser. Anda dapat mengamati bahwa permintaan klien didistribusikan antara server ECS01 dan ECS02.
Jika halaman menampilkan Hello World ! This is ECS01., permintaan diteruskan ke ECS01.
Jika Anda me-refresh halaman dan menampilkan Hello World ! This is ECS02., permintaan diteruskan ke ECS02.
Referensi
Operasi konsol
Informasi terkait ALB:
Informasi terkait sertifikat:
Referensi API
Anda dapat memanggil Operasi API berikut dan mengatur parameter CaEnabled menjadi true untuk mengaktifkan otentikasi timbal balik.