Jika Anda ingin mengenkripsi transmisi data untuk aplikasi, buat pendengar HTTPS untuk meneruskan permintaan HTTPS. Pendengar HTTPS mendukung transmisi data terenkripsi antara Application Load Balancer (ALB) dan klien yang telah mengaktifkan SSL atau TLS.
Prasyarat
Sebuah instans ALB telah dibuat.
Kebijakan keamanan TLS dan setidaknya satu sertifikat server SSL telah diterapkan pada instans ALB.
Sebuah kelompok server telah dibuat.
Prosedur
Topik ini menjelaskan dua prosedur untuk membuat pendengar HTTPS. Pilih metode sesuai kebutuhan Anda.
Pembuatan manual: Anda dapat membuat pendengar HTTPS dan mengonfigurasi fitur lanjutan, seperti otentikasi timbal balik.
Pembuatan cepat: Anda dapat menggunakan templat untuk membuat pendengar HTTPS secara cepat dengan menentukan protokol pendengar, port pendengar, sertifikat server, dan kelompok server backend.
Pembuatan manual
Langkah 1: Buat pendengar
Masuk ke Konsol ALB.
Di bilah navigasi atas, pilih wilayah tempat instans ALB berada.
Gunakan salah satu metode berikut untuk membuka wizard konfigurasi pendengar:
Di halaman Instances, temukan instans ALB yang ingin Anda kelola lalu klik Create Listener di kolom Actions.
Di halaman Instances, klik ID instans ALB yang ingin Anda kelola. Di tab Listener, klik Create Listener.
Di halaman wizard Configure Listener, atur parameter berikut lalu klik Next.
Parameter
Deskripsi
Listener Protocol
Pilih protokol pendengar.
Dalam contoh ini, HTTPS dipilih.
Listener Port
Masukkan port tempat instans ALB mendengarkan. Instans ALB mendengarkan pada port tersebut dan meneruskan permintaan ke server backend. Dalam contoh ini, digunakan port 443. Umumnya, port 80 digunakan untuk HTTP dan port 443 digunakan untuk HTTPS.
Nilai valid: 1 hingga 65535.
CatatanPada instans ALB yang sama, port pendengar yang menggunakan protokol yang sama harus unik. Pendengar HTTP dan HTTPS harus menggunakan port yang berbeda.
Listener Name
Masukkan nama untuk pendengar.
Tag
Konfigurasikan parameter Tag Key dan Tag Value untuk menambahkan tag. Anda dapat menambahkan satu atau beberapa tag.
Setelah menentukan tag, Anda dapat menyaring pendengar berdasarkan tag di tab Listener.
Advanced Settings
Anda dapat mengklik Modify untuk mengonfigurasi pengaturan lanjutan.
Enable HTTP/2
Tentukan apakah akan mengaktifkan HTTP/2 untuk pendengar.
Idle Connection Timeout Period
Tentukan periode timeout untuk koneksi idle. Satuan: detik. Nilai valid: 1 hingga 600. Nilai default: 15. Untuk menentukan periode timeout yang lebih lama, buka konsol Quota Center.
Jika tidak ada permintaan yang diterima dalam periode timeout yang ditentukan, CLB akan menutup koneksi. Saat permintaan diterima, CLB akan membuat koneksi baru.
CatatanFitur ini tidak tersedia untuk permintaan HTTP/2.
Connection Request Timeout
Tentukan periode timeout permintaan. Satuan: detik. Nilai valid: 1 hingga 600. Nilai default: 60. Untuk menentukan periode timeout yang lebih lama, buka konsol Quota Center.
Jika tidak ada respons yang diterima dari server backend dalam periode timeout permintaan, ALB akan mengembalikan kode kesalahan HTTP 504 ke klien.
Compression
Jika Anda mengaktifkan kompresi, jenis file tertentu akan dikompresi. Jika Anda menonaktifkan kompresi, tidak ada file yang dikompresi.
Brotli mendukung semua jenis file.
GZIP mendukung jenis file berikut:
text/xml,text/plain,text/css,application/javascript,application/x-javascript,application/rss+xml,application/atom+xml,application/xml, danapplication/json.
CatatanHanya ketika nilai
Content-Lengthmelebihi 1.024 byte, kompresi data akan dipicu.Jika permintaan klien mengizinkan kompresi Brotli dan GZIP, ALB akan menggunakan kompresi Brotli.
Jika permintaan klien hanya mengizinkan kompresi GZIP, dan setidaknya satu file dalam format yang tidak didukung oleh GZIP, ALB tidak akan mengompresi file apa pun.
Retrieve Client IP
Tentukan apakah akan mengaktifkan instans ALB untuk mengambil alamat IP klien dari header X-Forwarded-For. Jika Anda mengaktifkan fitur ini, Anda harus menentukan alamat IP tepercaya.
Jika Anda mengatur daftar alamat IP tepercaya menjadi
0.0.0.0/0, instans ALB akan mengambil alamat IP paling kiri dalam header X-Forwarded-For. Alamat IP tersebut adalah alamat IP klien sumber.Jika Anda mengatur daftar alamat IP tepercaya dalam format
proxy1 IP;proxy2 IP;.., instans ALB akan membandingkan alamat IP dalam header X-Forwarded-For dari kanan ke kiri terhadap daftar alamat IP tepercaya. Alamat IP pertama yang tidak ada dalam daftar alamat IP tepercaya dianggap sebagai alamat IP klien sumber.
Catatan penggunaan
Jika header X-Forwarded-For berisi beberapa alamat IP, seperti
X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …, alamat IP paling kiri adalah alamat IP klien sumber. Jika Anda ingin mengaktifkan fitur matching based on source IP addresses dan throttling based on QPS per client IP address dalam aturan pengalihan ALB, Anda harus mengaktifkan sakelar Retrieve Client IP agar instans ALB dapat mengambil alamat IP klien sumber dari header X-Forwarded-For. Untuk informasi selengkapnya, lihat Buat aturan pengalihan.CatatanRetrieve Client IP hanya didukung oleh instans ALB standar dan instans ALB yang diaktifkan WAF, tetapi tidak didukung oleh instans ALB dasar.
Add HTTP Header
Pilih header HTTP yang ingin Anda tambahkan.
Pilih apakah akan menggunakan header
X-Forwarded-Foruntuk mempertahankan alamat IP sumber.Jika Anda memilih
Add X-Forwarded-For to preserve client IP addresses, ALB dapat menambahkan headerX-Forwarded-Foratau menghapus headerX-Forwarded-Fordari permintaan sebelum meneruskannya ke server backend.Add (default)
Jika Anda memilih Add, ALB akan menambahkan alamat IP hop terakhir ke header X-Forwarded-For dalam permintaan sebelum meneruskannya ke server backend. Jika permintaan tidak berisi header X-Forwarded-For, ALB akan membuat header X-Forwarded-For dengan nilai alamat IP hop terakhir dan menambahkannya ke permintaan. Header X-Forwarded-For dalam permintaan mungkin berisi beberapa alamat IP yang dipisahkan koma (,).
Remove
Jika Anda memilih Remove, ALB akan menghapus header
X-Forwarded-Fordari permintaan sebelum meneruskannya ke server backend.
Jika Anda tidak memilih
Add X-Forwarded-For to preserve client IP addresses, ALB tidak akan melakukan apa pun terhadap headerX-Forwarded-Fordalam permintaan sebelum meneruskannya ke server backend.
Format:
X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …Add SLB-ID to preserve SLB instance IDs: Tambahkan header SLB-ID untuk menyimpan ID instans ALB.Add X-Forwarded-Proto to preserve listener protocols: Tambahkan header X-Forwarded-Proto untuk menyimpan protokol pendengar.Add X-Forwarded-Port to preserve SLB listener ports: Tambahkan header X-Forwarded-Port untuk menyimpan port pendengar.Add X-Forwarded-Host to preserve client domain names: Tambahkan header X-Forwarded-Host untuk menyimpan nama domain klien.Add X-Forwarded-Client-srcport to preserve client ports: Tambahkan header X-Forwarded-Client-srcport untuk menyimpan port klien.Add X-Forwarded-Clientcert-subjectdn to preserve owner information about client certificates: Tambahkan header X-Forwarded-Clientcert-subjectdn untuk menyimpan informasi pemilik sertifikat klien.Add X-Forwarded-Clientcert-issuerdn to preserve information about client certificate issuers: Tambahkan header X-Forwarded-Clientcert-issuerdn untuk menyimpan informasi otoritas penerbit sertifikat klien.Add X-Forwarded-Clientcert-fingerprint to preserve client certificate fingerprints: Tambahkan header X-Forwarded-Clientcert-fingerprint untuk menyimpan sidik jari sertifikat klien.Add X-Forwarded-Clientcert-clientverify to preserve client certificate verification results: Tambahkan header X-Forwarded-Clientcert-clientverify untuk menyimpan hasil verifikasi sertifikat klien.
CatatanKami menyarankan agar Anda mengonfigurasi server backend Anda untuk mengikuti standar HTTP – tidak membedakan huruf besar/kecil saat memproses header permintaan.
Header X-Forwarded-For yang dibuat dan ditambahkan ke permintaan oleh ALB selalu diawali dengan huruf "X" kapital.
Kecuali untuk X-Forwarded-For, untuk header yang disebutkan di atas, ALB memprosesnya mengikuti aturan yang dijelaskan di atas. Untuk header lainnya, ALB mempertahankannya dalam bentuk aslinya dalam permintaan.
Anda tidak dapat menentukan kunci header kustom berikut: X-Forwarded-Clientcert-subjectdn, X-Forwarded-Clientcert-issuerdn, X-Forwarded-Clientcert-fingerprint, dan X-Forwarded-Clientcert-clientverify sebagai berikut:
slb-id,slb-ip,x-forwarded-for,x-forwarded-proto,x-forwarded-eip,x-forwarded-port,x-forwarded-client-srcport,x-forwarded-host,connection,upgrade,content-length,transfer-encoding,keep-alive,te,host,cookie,remoteip, danauthority
QUIC Update
Tentukan apakah akan mengaktifkan peningkatan Quick UDP Internet Connections (QUIC). Untuk menggunakan fitur ini, Anda harus memilih pendengar QUIC dari daftar drop-down Associated QUIC Listeners.
Jika belum ada pendengar QUIC yang dibuat, klik Create Listener untuk membuatnya. Untuk informasi selengkapnya, lihat Tambahkan pendengar QUIC.
ALB mendukung iQUIC dan gQUIC. Untuk informasi selengkapnya, lihat Gunakan QUIC untuk mempercepat pengiriman konten video dan audio.
Langkah 2: Tambahkan sertifikat SSL
Untuk membuat pendengar HTTPS, Anda harus mengonfigurasi sertifikat SSL untuk otentikasi identitas guna mengamankan transmisi data. Tabel berikut menjelaskan sertifikat yang didukung oleh ALB.
Sertifikat | Deskripsi | Diperlukan untuk otentikasi satu arah | Diperlukan untuk otentikasi timbal balik |
Server certificate | Sertifikat server digunakan untuk mengotentikasi identitas server. Browser klien memverifikasi apakah sertifikat yang dikirim oleh server ditandatangani dan dikeluarkan oleh Otoritas Sertifikat (CA) tepercaya. Untuk informasi selengkapnya, lihat Apa itu Sertifikat SSL? | Ya Anda dapat membeli atau mengunggah sertifikat server di konsol Layanan Manajemen Sertifikat. ALB mengambil sertifikat tersebut dari Layanan Manajemen Sertifikat dan menggunakannya. | Ya Anda dapat membeli atau mengunggah sertifikat server di konsol Layanan Manajemen Sertifikat. ALB mengambil sertifikat tersebut dari Layanan Manajemen Sertifikat dan menggunakannya. |
CA certificate | Sertifikat CA digunakan oleh server untuk memverifikasi tanda tangan pada sertifikat klien. Jika tanda tangan tidak valid, permintaan koneksi akan ditolak. Catatan Sertifikat klien digunakan untuk mengotentikasi identitas klien saat berkomunikasi dengan server. Anda hanya perlu menginstal sertifikat klien di sisi klien. | Tidak | Ya. Anda dapat membeli atau mengunggah sertifikat CA di konsol Layanan Manajemen Sertifikat. ALB mengambil sertifikat tersebut dari Layanan Manajemen Sertifikat dan menggunakannya. |
Proses unggah, pemuatan, dan verifikasi sertifikat baru mungkin memerlukan beberapa menit. Oleh karena itu, pendengar HTTPS tidak tersedia segera setelah dibuat. Diperlukan waktu sekitar 1 hingga 3 menit untuk mengaktifkan pendengar HTTPS.
Jika Anda ingin mengakses beberapa nama domain atau menambahkan beberapa sertifikat server, Anda dapat menambahkan sertifikat tambahan untuk pendengar HTTPS.
Pada langkah Configure SSL Certificate, pilih sertifikat server.
Jika tidak tersedia sertifikat server, klik Create SSL Certificate di daftar drop-down untuk membuka konsol Layanan Manajemen Sertifikat. Kemudian, Anda dapat membeli atau mengunggah sertifikat server.
(Opsional) Aktifkan Enable Mutual Authentication dan pilih sumber sertifikat.
Pilih Alibaba Cloud sebagai sumber sertifikat CA, lalu pilih sertifikat CA dari daftar drop-down Default CA Certificate.
Jika tidak tersedia sertifikat CA, Anda dapat mengklik Purchase CA Certificate untuk membuatnya.
Atau, pilih Third-party sebagai sumber sertifikat CA, lalu pilih sertifikat CA dari daftar drop-down Default CA Certificate.
Jika tidak tersedia sertifikat CA yang ditandatangani sendiri, klik Upload Self-signed CA Certificate di daftar drop-down. Di halaman Certificate Application Repository, buat repositori dengan Uploaded CA Certificates sebagai Data Source. Kemudian, unggah sertifikat CA root atau CA perantara yang ditandatangani sendiri ke repositori tersebut.
Hanya instans ALB standar dan instans ALB yang diaktifkan WAF yang mendukung otentikasi timbal balik. Instans ALB dasar tidak mendukung otentikasi timbal balik.
Jika Anda ingin menonaktifkan otentikasi timbal balik setelah mengaktifkan fitur ini, lakukan langkah-langkah berikut:
Di halaman Instances, klik ID instans ALB yang ingin Anda kelola.
Di tab Listener, klik ID pendengar HTTPS yang ingin Anda kelola.
Di tab Listener Details, nonaktifkan otentikasi timbal balik di bagian SSL Certificate.
Pilih TLS security policy lalu klik Next.
Jika tidak tersedia kebijakan keamanan TLS, klik Create TLS Security Policy untuk membuatnya.
Kebijakan keamanan TLS berisi versi protokol TLS dan paket sandi yang tersedia untuk pendengar HTTPS.
Langkah 3: Pilih kelompok server
Pada langkah Server Group, pilih kelompok server, lihat server backend, lalu klik Next.
Langkah 4: Tinjau konfigurasi
Pada langkah Confirm, konfirmasi konfigurasi lalu klik Submit.
Pembuatan cepat
Jika Anda memilih metode ini, Anda hanya perlu menentukan protokol pendengar, port pendengar, sertifikat server, kebijakan keamanan TLS, dan kelompok server.
Masuk ke Konsol ALB.
Di bilah navigasi atas, pilih wilayah tempat instans ALB berada.
Di halaman Instances, temukan instans ALB yang ingin Anda kelola lalu klik ID-nya.
Klik tab Listener. Di tab Listener, klik Quick Create Listener.
Di kotak dialog Quick Create Listener, konfigurasikan parameter berikut lalu klik OK.
Parameter
Deskripsi
Listener Protocol
Pilih protokol listener. Dalam contoh ini, HTTPS dipilih.
Listener Port
Port frontend yang digunakan untuk menerima dan meneruskan permintaan ke server backend.
Anda dapat memilih port umum atau memasukkan nomor port secara manual. Nilai valid: 1 hingga 65535.
Server Certificate
Pilih sertifikat server dari daftar drop-down.
Jika tidak tersedia sertifikat server, klik Create SSL Certificate untuk membuatnya. Untuk informasi selengkapnya, lihat Beli sertifikat SSL dan Unggah sertifikat SSL.
Resource Group
Pilih kelompok resource untuk kelompok server.
TLS Security Policy
Jika tidak tersedia kebijakan keamanan TLS, klik Create TLS Security Policy untuk membuatnya. Untuk informasi selengkapnya, lihat Kebijakan keamanan TLS.
Server Group
Atur tipe kelompok server dan server backend dalam kelompok server tersebut.
FAQ
Bagaimana cara saya mencegah pemalsuan header X-Forwarded-For?
Pendengar HTTPS mendukung TLS 1.0, 1.1, 1.2, dan 1.3. Untuk informasi selengkapnya, lihat Kebijakan keamanan TLS.
Apakah server backend dapat mengambil versi TLS yang digunakan oleh pendengar HTTPS terkait?
Ya, server backend dapat mengambil versi TLS yang digunakan oleh pendengar HTTPS terkait.
Versi HTTP apa yang digunakan oleh pendengar HTTPS untuk mendistribusikan traffic jaringan ke server backend?
Jika permintaan klien menggunakan HTTP/1.1 atau HTTP/2, pendengar Lapisan 7 menggunakan HTTP/1.1 untuk mendistribusikan traffic jaringan ke server backend.
Jika permintaan klien menggunakan protokol selain HTTP/1.1 dan HTTP/2, pendengar Lapisan 7 menggunakan HTTP/1.0 untuk mendistribusikan traffic jaringan ke server backend.
Persyaratan apa yang harus dipenuhi oleh sertifikat wildcard pendengar?
Saat Anda menambahkan pendengar HTTPS ke instans ALB, perhatikan aturan berikut jika Anda memilih sertifikat wildcard.
Saat Anda memilih sertifikat wildcard, ALB hanya mengenali sertifikat wildcard yang berisi satu karakter wildcard
*. Karakter wildcard*harus berada di awal nama domain. Misalnya, ALB dapat mengenali*.example.comdan*test.example.com, tetapi tidak dapat mengenalitest*.example.com.Aturan pencocokan nama domain wildcard:
Tingkat wildcard: Nama domain wildcard hanya cocok dengan subdomain pada tingkat yang sama. Misalnya,
*.example.comdapat mencocokkantest.example.com, tetapi tidak dapat mencocokkantest.test.example.comkarena subdomain tersebut tidak berada pada tingkat yang sama dengan nama domain wildcard.Dukungan IDNA:
Jika karakter wildcard adalah satu-satunya karakter dalam label paling kiri sertifikat wildcard, label Internationalized Domain Name in Applications (IDNA) dapat mencocokkan karakter wildcard tersebut. Misalnya,
xn--fsqu00a.example.comdapat mencocokkan*.example.com.Jika karakter wildcard bukan satu-satunya karakter dalam label paling kiri sertifikat wildcard, label IDNA tidak dapat mencocokkan bagian tersebut dari wildcard. Misalnya,
xn--fsqu00atest.example.comtidak dapat mencocokkan*test.example.com.
Dukungan karakter: Karakter wildcard
*dalam sertifikat wildcard hanya cocok dengan angka (0–9), huruf besar dan kecil, serta tanda hubung (-). Misalnya,*.example.comdapat mencocokkantest.example.com, tetapi tidak dapat mencocokkantest_test.example.com.
Bagaimana cara mencegah spoofing header X-Forwarded-For?
Tentukan bidang header dari produk upstream lain untuk mencatat IP klien asli:
Misalnya, dalam arsitektur Client -> CDN -> WAF -> SLB > ECS: CDN meneruskan IP asli klien dalam header HTTP
Ali-Cdn-Real-Ip. Saat mengonfigurasi WAF, atur metode deteksi IP klien ke "Specify Header Field" dan gunakanAli-Cdn-Real-Ip. Selanjutnya, di server Nginx backend, konfigurasikan variabel log untuk IP klien asli menjadi$http_Ali_Cdn_Real_Ip.Beralih ke pendengar lapisan 4 (NLB atau CLB): Saat menggunakan pendengar lapisan 4, server backend dapat secara otomatis mendapatkan IP klien asli. Untuk detailnya, lihat Aktifkan pendengar Lapisan 4 untuk mempertahankan alamat IP klien dan meneruskannya ke server backend.
Apakah ALB mendukung protokol WebSocket Secure?
Secara default, pendengar HTTPS ALB mendukung WebSocket Secure. Untuk tutorialnya, lihat Gunakan WebSocket untuk mengaktifkan pesan real-time.
Referensi
Pelajari lebih lanjut
ALB mendukung berbagai fitur routing lanjutan. Untuk informasi selengkapnya, lihat Kelola aturan pengalihan untuk pendengar.
Jika Anda mengalami masalah kode kesalahan, lihat Kode status kesalahan ALB.
Jika ada server backend yang dinyatakan tidak sehat, lihat Pemecahan masalah pemeriksaan kesehatan ALB.
Pendengar HTTPS ideal untuk berbagai skenario penggunaan. Untuk informasi selengkapnya, lihat topik berikut:
Alihkan permintaan HTTP ke pendengar HTTPS: Konfigurasikan aturan pengalihan untuk pendengar ALB agar mengalihkan permintaan HTTP ke pendengar HTTPS. Ini mengenkripsi transmisi data pada instans ALB, mencegah serangan man-in-the-middle dan kebocoran data, serta membantu Anda membangun arsitektur jaringan modern dan aman.
Konfigurasikan enkripsi HTTPS end-to-end untuk transfer data: ALB mendukung enkripsi HTTPS end-to-end untuk transmisi data, mengenkripsi data yang ditransmisikan antara klien dan ALB, serta antara ALB dan server backend, untuk meningkatkan keamanan data sensitif.
Konfigurasikan instans ALB untuk melayani beberapa nama domain melalui HTTPS: Untuk meneruskan permintaan HTTPS yang ditujukan ke berbagai nama domain ke server backend yang berbeda, kaitkan beberapa sertifikat dengan pendengar HTTPS dan konfigurasikan aturan pengalihan berbasis domain.
Konfigurasikan otentikasi timbal balik pada pendengar HTTPS: Untuk bisnis yang memerlukan otentikasi sangat aman, seperti skenario keuangan dan medis, aktifkan otentikasi timbal balik HTTPS untuk instans ALB. Ini mengharuskan klien dan server saling memvalidasi identitas, sehingga meningkatkan keamanan transmisi data.