Otentikasi satu arah, di mana hanya klien yang memvalidasi identitas server, tidak memenuhi persyaratan keamanan dalam skenario transaksi keuangan, medis, perbankan, dan pembayaran online. Dalam skenario tersebut, server mempercayai semua klien yang terhubung dengannya, sehingga menimbulkan risiko serangan man-in-the-middle dan akses tidak sah. Application Load Balancer (ALB) mendukung otentikasi timbal balik pada pendengar HTTPS. Dalam otentikasi timbal balik, baik klien maupun server harus saling memvalidasi identitas sebelum menjalin koneksi aman untuk transmisi data.
Ikhtisar otentikasi timbal balik
Mengapa otentikasi timbal balik diperlukan
Sebagian besar aplikasi web Internet menerima berbagai klien untuk mengaksesnya. Untuk aplikasi tersebut, cukup menggunakan otentikasi HTTPS satu arah: klien memvalidasi identitas server sebelum berinteraksi dengan aplikasi guna memastikan bahwa klien terhubung ke server yang valid.
Namun, dalam skenario yang memerlukan tingkat keamanan lebih tinggi, identitas server saja tidak cukup—otentikasi klien juga diperlukan. Otentikasi timbal balik digunakan dalam kasus ini untuk memastikan bahwa hanya klien sah yang dapat mengakses server, sehingga mengurangi risiko keamanan seperti serangan man-in-the-middle dan akses tidak sah.
Skema penggunaan
Untuk bisnis dengan persyaratan keamanan tinggi—seperti transaksi keuangan, layanan kesehatan, perbankan, dan pembayaran online—tidak hanya sisi klien yang perlu memverifikasi identitas server, tetapi server juga harus mengotentikasi klien.
Jika otentikasi klien tidak diperlukan, maka otentikasi timbal balik tidak diperlukan.
Batasan
Hanya instans ALB Edisi Standar dan instans ALB Edisi yang ditingkatkan dengan WAF yang mendukung otentikasi timbal balik. Instans ALB Edisi Dasar tidak mendukung fitur ini.
Hanya pendengar HTTPS yang mendukung otentikasi timbal balik. Pendengar QUIC dan pendengar HTTP tidak mendukung fitur ini.
Skema contoh
Sebuah perusahaan telah menerapkan platform transaksi online yang berorientasi pelanggan. Awalnya, mereka hanya menggunakan otentikasi HTTPS satu arah untuk transmisi data pada platform ini, tetapi menemukan bahwa beberapa perangkat tidak sah mencoba mengakses sistem, sehingga menimbulkan risiko kebocoran data dan manipulasi transaksi. Selain itu, seiring pertumbuhan bisnis, platform tersebut menghadapi tantangan kinerja selama lonjakan lalu lintas.
Untuk mengatasi masalah ini, perusahaan memutuskan untuk menerapkan ALB Alibaba Cloud dan mengaktifkan otentikasi timbal balik untuk layanan ALB.
Melalui kemampuan load balancing ALB, permintaan klien didistribusikan secara efisien ke server backend, memastikan kinerja stabil dan waktu tanggapan cepat bahkan dalam skenario konkurensi tinggi.
Dengan mengaktifkan otentikasi timbal balik pada ALB, semua klien yang mengakses platform harus menyediakan sertifikat klien yang valid untuk menjalin koneksi dengan platform, sehingga secara efektif memblokir perangkat tidak sah dari mengakses sistem dan secara signifikan mengurangi risiko kebocoran data serta manipulasi transaksi.
Prasyarat
Anda telah membeli atau mengunggah sertifikat server ke Layanan Manajemen Sertifikat.
Dalam contoh ini, sertifikat dibeli.
CatatanUntuk membeli Sertifikat SSL, Anda harus memiliki nama domain kustom yang valid.
Sertifikat CA perantara telah dibeli di konsol Layanan Manajemen Sertifikat, dan tersedia setidaknya satu sertifikat CA perantara pribadi. Atau, sertifikat CA root tanda tangan sendiri atau sertifikat CA perantara tanda tangan sendiri telah diunggah ke Layanan Manajemen Sertifikat.
Anda telah membuat virtual private cloud (VPC) (diberi nama VPC1 dalam panduan ini), dan membuat dua Instance Elastic Compute Service (ECS) di VPC1 (diberi nama ECS01 dan ECS02 masing-masing dalam panduan ini), dengan aplikasi yang diterapkan pada kedua instance ECS tersebut.
Dalam panduan ini, sistem operasi Alibaba Cloud Linux 3 digunakan pada instance ECS dan NGINX digunakan untuk mengonfigurasi layanan HTTPS.
Anda telah membuat instans ALB edisi Standar atau edisi yang diaktifkan WAF.
Anda telah membuat grup server dan menambahkan ECS01 dan ECS02 sebagai server backend ke grup server tersebut.
Jika Anda ingin ALB berkomunikasi dengan server backend menggunakan protokol HTTPS, pilih HTTPS sebagai protokol backend saat membuat grup server, dan pastikan server backend telah menerapkan layanan HTTPS.
Prosedur
Langkah 1: Menyebarkan sertifikat klien
Di sisi klien (pengguna), sertifikat klien harus disiapkan dan diekspor.
Panduan ini memperkenalkan dua cara untuk mendapatkan sertifikat CA. Anda dapat membeli sertifikat CA melalui Layanan Manajemen Sertifikat dan mengajukan sertifikat klien, atau Anda dapat mengunggah sertifikat CA tanda tangan sendiri ke Layanan Manajemen Sertifikat.
1. Menyiapkan sertifikat klien
Opsi 1: Mengajukan sertifikat klien
Lihat Mengajukan sertifikat pribadi untuk mengajukan sertifikat klien.
Masuk ke Konsol Layanan Sertifikat.
Di panel navigasi sebelah kiri, pilih . Pada halaman PCA Certificate Management, pilih wilayah tempat layanan PCA berada.
Pada tab Private CAs, temukan CA perantara pribadi yang ingin Anda gunakan dan klik Apply for Certificate di kolom Actions.

Pada panel Apply for Certificate, konfigurasikan parameter dan klik Confirm. Tabel berikut menjelaskan parameter tersebut.
Dalam panduan ini, saat mengajukan sertifikat klien, atur Certificate Type menjadi Client Certificate, dan tentukan Personal Name (digunakan sebagai pengenal unik untuk pengguna klien). Pertahankan pengaturan default untuk parameter lain saat mengajukan sertifikat klien atau ubah sesuai kebutuhan.

Setelah Anda mengirimkan permohonan sertifikat, sertifikat pribadi langsung diterbitkan. Kemudian, Anda dapat mengklik Certificates di kolom Actions untuk melihat informasi tentang sertifikat pribadi tersebut.
Opsi 2: Mengunggah sertifikat CA tanda tangan sendiri
Masuk ke ECS01 secara jarak jauh dan gunakan perintah berikut untuk menghasilkan sertifikat CA root tanda tangan sendiri.
ALB mendukung sertifikat CA root tanda tangan sendiri atau sertifikat CA perantara tanda tangan sendiri untuk otentikasi timbal balik. Dalam panduan ini, digunakan sertifikat CA root tanda tangan sendiri.
Gunakan perintah berikut untuk membuat kunci privat sertifikat CA root:
openssl genrsa -out root.key 4096Gunakan perintah berikut untuk membuat file permintaan sertifikat CA root:
openssl req -new -out root.csr -key root.keyAtur parameter lainnya. Contoh:
CatatanPastikan nama umum (common name) dalam sertifikat CA berbeda dari yang ada dalam sertifikat klien dan sertifikat server.
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 []:Gunakan perintah berikut untuk membuat sertifikat CA root:
openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650Contoh keluaran:

Gunakan perintah
lsuntuk memeriksa sertifikat CA root yang dihasilkanroot.crtdan kunci privat sertifikat CA rootroot.key.Unduh file sertifikat CA root ini ke komputer lokal Anda agar nanti dapat diunggah ke Layanan Manajemen Sertifikat.
Unggah sertifikat CA root tanda tangan sendiri ke Layanan Manajemen Sertifikat.
Masuk ke Layanan Manajemen Sertifikat.
Di panel navigasi sebelah kiri, pilih .
Pada halaman Certificate Application Repository, klik Create Repository. Pada panel Create Repository, atur Data Source menjadi Uploaded CA Certificates, lalu klik OK.

Pada halaman Certificate Application Repository, klik repositori sertifikat yang telah dibuat.
Pada halaman Official Certificate, klik Uploaded Certificates. Pada panel CA Information, unggah file sertifikat CA root
root.crt, lalu klik Confirm and Enable.
2. Mengekspor sertifikat klien
Opsi 1: Mengekspor sertifikat klien yang dibeli melalui Layanan Manajemen Sertifikat
Jika Anda telah membeli sertifikat klien melalui Layanan Manajemen Sertifikat dan ingin menggunakan sertifikat klien tersebut untuk otentikasi timbal balik, lakukan langkah-langkah berikut untuk mengekspor sertifikat klien:
Di panel navigasi sebelah kiri, pilih PCA Certificate Management. Pada tab Private CAs, temukan CA perantara pribadi tempat sertifikat pribadi yang diperlukan diterbitkan dan klik Certificates di kolom Actions.

Pada halaman Certificates, temukan sertifikat pribadi yang ingin Anda unduh dan klik Download di kolom Actions.
Pada kotak dialog Download Certificate, atur parameter Certificate Format dan klik Confirm and Download. Jika Anda mengaktifkan Include Trust Chain, sertifikat yang diunduh mencakup rantai sertifikat lengkap.
Dalam panduan ini, atur Format Sertifikat menjadi PFX, yang dapat dikenali oleh browser.

Seperti yang ditunjukkan pada gambar berikut, file sertifikat yang diunduh mencakup file sertifikat klien dengan ekstensi
.pfxdan kata sandi enkripsi kunci privat klien dalam file.txt.
Opsi 2: Mengekspor sertifikat klien yang dihasilkan dari sertifikat tanda tangan sendiri
Jika Anda telah mengunggah sertifikat CA tanda tangan sendiri ke Layanan Manajemen Sertifikat dan perlu menggunakan sertifikat klien yang dihasilkan dari sertifikat CA tanda tangan sendiri tersebut untuk otentikasi timbal balik, lakukan langkah-langkah berikut untuk menghasilkan sertifikat klien:
Masuk ke ECS01 secara jarak jauh dan lakukan langkah-langkah berikut untuk menghasilkan sertifikat klien.
Gunakan perintah berikut untuk menghasilkan kunci sertifikat klien:
openssl genrsa -out client.key 4096Gunakan perintah berikut untuk menghasilkan file permintaan sertifikat klien:
openssl req -new -out client.csr -key client.keyAtur parameter lainnya. Contoh:
CatatanPastikan nama umum (common name) dalam sertifikat CA berbeda dari yang ada dalam sertifikat server, sertifikat root, dan 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 []:Gunakan perintah berikut untuk menghasilkan sertifikat klien.
openssl x509 -req -in client.csr -out client.crt -CA root.crt -CAkey root.key -CAcreateserial -days 3650Contoh keluaran:

Gunakan perintah berikut untuk mengonversi sertifikat klien yang dihasilkan
client.crtmenjadi file PKCS12 yang dapat dikenali oleh browser. Ikuti petunjuk untuk memasukkan kata sandi enkripsi kunci privat klien yang Anda tetapkan.openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12Gunakan perintah
lsuntuk memeriksa file sertifikat klienclient.p12yang dihasilkan.Unduh file sertifikat klien ke komputer lokal Anda agar nanti dapat dikirimkan ke klien.
Langkah 2: Mengonfigurasi pendengar HTTPS dengan otentikasi timbal balik diaktifkan
Di bilah navigasi atas Konsol ALB, pilih wilayah tempat instans ALB Anda berada. Pada halaman Instances, temukan instans ALB Anda dan klik ID-nya.
Pada halaman detail instans, klik tab Listeners, klik Create Listener, lengkapi konfigurasi berikut, lalu klik Next.
Dalam panduan ini, atur Listener Protocol menjadi HTTPS, Listener Port menjadi 443. Pertahankan nilai default untuk parameter pendengar HTTPS lainnya atau ubah sesuai kebutuhan.

Pada langkah Configure SSL Certificate, pilih sertifikat server yang telah dibeli. Aktifkan Enable Mutual Authentication, pilih sumber sertifikat CA dan sertifikat CA. Pilih kebijakan keamanan TLS dan klik Next.
Jika CA Certificate Source diatur ke Alibaba Cloud, pilih sertifikat CA yang diajukan di Langkah 1: Menyebarkan sertifikat klien dari daftar drop-down Default CA Certificate.
Jika CA Certificate Source diatur ke Third-party, pilih sertifikat CA tanda tangan sendiri yang diunggah di Langkah 1: Menyebarkan sertifikat klien dari daftar drop-down Default CA Certificate.
Gambar berikut menunjukkan contoh pemilihan sertifikat CA yang diterbitkan Alibaba Cloud.

Pada langkah Select Server Group, pilih Server Type dan grup server yang telah dibuat dari daftar drop-down di sebelah kanan. Periksa informasi server backend ECS01 dan ECS02, lalu klik Next.
Pada langkah Configuration Review, konfirmasi informasi konfigurasi, lalu klik Submit.
Langkah 3: Menambahkan rekaman DNS
Untuk bisnis Anda, kami merekomendasikan agar Anda menambahkan rekaman DNS untuk memetakan nama domain kustom Anda ke nama domain instans ALB Anda.
Di panel navigasi sebelah kiri Konsol ALB, pilih . Pada halaman Instances, salin nama DNS instans ALB Anda.
Tambahkan rekaman CNAME.
Pada halaman Resolusi DNS Otoritatif, temukan nama domain kustom Anda, lalu di kolom Actions, klik DNS Settings.
CatatanUntuk nama domain yang tidak didaftarkan di Alibaba Cloud, Anda perlu terlebih dahulu menambahkan nama domain ke DNS Alibaba Cloud sebelum dapat mengonfigurasi resolusi DNS.
Pada halaman DNS Settings, klik Add DNS Record, konfigurasikan rekaman CNAME, lalu klik OK.
Dalam panduan ini, atur Record Type menjadi CNAME dan Record Value menjadi nama DNS instans ALB Anda. Pertahankan nilai default untuk parameter rekaman DNS lainnya atau ubah sesuai kebutuhan.

Langkah 4: Menguji efek otentikasi timbal balik
Dalam panduan ini, klien Windows dan browser Chrome di dalamnya digunakan untuk pengujian.
Instal sertifikat klien yang diekspor pada klien.
Klik ganda file sertifikat klien yang diunduh dan ikuti petunjuk wizard impor sertifikat sistem untuk menyelesaikan instalasi.
Masukkan
https://<Nama domain kustom Anda>di bidang alamat browser Chrome. Pada kotak dialog yang muncul, pilih sertifikat yang akan digunakan untuk otentikasi klien.
Segarkan halaman beberapa kali. Jika tanggapan dari ECS01 dan ECS02 dikembalikan secara bergantian, berarti otentikasi timbal balik telah diterapkan.


Referensi
Konsol
Mengelola dan menggunakan sertifikat di konsol ALB:
Membeli sertifikat yang ditandatangani CA dan membuat sertifikat tanda tangan sendiri di konsol Layanan Manajemen Sertifikat:
API
Panggil operasi API berikut dan atur parameter CaEnabled menjadi true untuk mengaktifkan otentikasi timbal balik: