全部产品
Search
文档中心

:Bagaimana cara menyelesaikan pengecualian akses HTTPS yang disebabkan oleh masalah kompatibilitas SNI?

更新时间:Nov 09, 2025

Topik ini menjelaskan cara menyelesaikan pengecualian akses HTTPS yang disebabkan oleh masalah kompatibilitas Server Name Indication (SNI) antar klien setelah layanan web terkait ditambahkan ke Web Application Firewall (WAF).

Latar Belakang

Hosting virtual diperkenalkan untuk mengatasi tantangan kekurangan alamat IP. Hosting virtual memungkinkan satu server HTTP atau HTTPS menampung beberapa nama domain dengan berbagi alamat IP yang sama. Dalam hal ini, setiap nama domain berfungsi sebagai host virtual. Server dapat mengalokasikan permintaan ke host virtual yang berbeda berdasarkan header Host dalam permintaan klien. Sebagai contoh, sebelum browser mengakses situs web HTTPS yang dihosting pada server tempat hosting virtual diaktifkan, browser harus membuat koneksi SSL dengan server dan meminta sertifikat server yang diperlukan. Namun, server tidak dapat mengidentifikasi nama domain mana yang diakses dan tidak dapat mengembalikan sertifikat yang sesuai.

SNI adalah ekstensi SSL/TLS yang dirancang untuk menyelesaikan masalah ini. Sebelum koneksi SSL dibuat dengan server, browser mengirimkan nama host yang menentukan nama domain untuk diakses ke server. Kemudian, server mengidentifikasi dan mengembalikan sertifikat untuk nama domain tersebut.

Sebagian besar sistem operasi dan browser mendukung SNI. OpenSSL 0.9.8 mendukung SNI bawaan. Versi baru server NGINX juga mendukung SNI.

Deskripsi Masalah

Jika situs web Anda mengalami pengecualian akses HTTPS setelah ditambahkan ke WAF, klien terkait mungkin tidak mendukung SNI.

Jika browser yang tidak mendukung SNI digunakan untuk mengakses situs web yang dilindungi WAF, WAF tidak dapat mengidentifikasi nama domain spesifik yang diminta atau mendapatkan sertifikat yang diperlukan untuk nama domain tersebut untuk berinteraksi dengan browser. Dalam hal ini, WAF menggunakan sertifikat default untuk menyelesaikan proses jabat tangan dengan browser, dan browser melaporkan kesalahan "Sertifikat tidak dipercaya".

Jika klien tidak mendukung SNI, masalah berikut mungkin terjadi:

  • Jika klien adalah aplikasi seluler yang berjalan di iOS, akses berhasil. Jika klien adalah aplikasi seluler yang berjalan di Android, akses gagal.

  • Jika klien adalah browser, kesalahan "Sertifikat tidak dipercaya" dilaporkan.

Solusi

Tangkap paket jabat tangan SSL di sisi klien untuk menentukan apakah klien mendukung SNI. Dalam contoh ini, browser Chrome digunakan untuk mengakses situs resmi Alibaba Cloud.

Jika informasi SNI termasuk dalam paket Client Hello, klien mendukung SNI.

Sebaliknya, klien tidak mendukung SNI. Rekomendasi:

  • Perbarui browser Anda atau gunakan versi terbaru dari browser, seperti Chrome dan Firefox.

  • Dalam skenario panggilan balik pihak ketiga seperti panggilan balik WeChat atau Alipay, gunakan alamat IP server asal untuk melewati WAF.

Kompatibilitas SNI

Catatan

SNI kompatibel dengan TLS1.0 dan versi lebih baru tetapi tidak didukung oleh SSL.

  • SNI mendukung browser desktop berikut:

    • Chrome 5 dan versi lebih baru

    • Chrome 6 dan versi lebih baru (Windows XP)

    • Firefox 2 dan versi lebih baru

    • IE 7 dan versi lebih baru (di Windows Vista/Server 2008 dan versi lebih baru, tidak termasuk IE versi apa pun di Windows XP)

    • Konqueror 4.7 dan versi lebih baru

    • Opera 8 dan versi lebih baru

    • Safari 3.0 di Windows Vista/Server 2008 dan versi lebih baru atau Mac OS X 10.5.6 dan versi lebih baru

  • SNI mendukung pustaka berikut:

    • GNU TLS

    • Java 7 dan versi lebih baru (hanya berfungsi sebagai klien)

    • HTTP client 4.3.2 dan versi lebih baru

    • libcurl 7.18.1 dan versi lebih baru

    • NSS 3.1.1 dan versi lebih baru

    • OpenSSL 0.9.8j dan versi lebih baru

    • OpenSSL 0.9.8f dan versi lebih baru (flags diperlukan)

    • QT 4.8 dan versi lebih baru

    • Python3, Python 2.7.9, dan versi lebih baru

  • SNI mendukung browser seluler berikut:

    • Android Browser di 3.0 Honeycomb dan versi lebih baru

    • iOS Safari di iOS 4 dan versi lebih baru

    • Windows Phone 7 dan versi lebih baru

  • SNI mendukung server berikut:

    • Apache 2.2.12 dan versi lebih baru

    • Apache Traffic Server 3.2.0 dan versi lebih baru

    • HAProxy 1.5 dan versi lebih baru

    • IIS 8.0 dan versi lebih baru

    • lighttpd 1.4.24 dan versi lebih baru

    • LiteSpeed 4.1 dan versi lebih baru

    • Nginx 0.5.32 dan versi lebih baru

  • SNI mendukung antarmuka baris perintah berikut:

    • cURL 7.18.1 dan versi lebih baru

    • wget 1.14 dan versi lebih baru