Ya, tetapi ada beberapa peringatan.
Ini dicapai melalui Indikasi Nama Server, ekstensi untuk Transport Layer Security.
Apa itu Indikasi Nama Server?
Indikasi Nama Server ( RFC 6066 ; usang RFC 4366 , RFC 3546 ) adalah ekstensi untuk Transport Layer Security yang memungkinkan klien untuk memberi tahu server nama host yang hendak dijangkau.
SNI kompatibel dengan TLS 1.0 dan lebih tinggi sesuai dengan spesifikasi, tetapi implementasinya dapat bervariasi (lihat di bawah). Ini tidak dapat digunakan dengan SSL, jadi koneksi harus menegosiasikan TLS (lihat RFC 4346 lampiran E ) agar SNI dapat digunakan. Ini umumnya terjadi secara otomatis dengan perangkat lunak yang didukung.
Mengapa SNI dibutuhkan?
Dalam koneksi HTTP normal , browser menginformasikan server nama host server yang ingin dijangkau menggunakan Host:
header. Ini memungkinkan server web pada satu alamat IP untuk menyajikan konten untuk beberapa nama host, yang umumnya dikenal sebagai hosting virtual berbasis nama .
Alternatifnya adalah dengan menetapkan alamat IP unik untuk setiap nama host web yang akan dilayani. Ini biasanya dilakukan pada hari-hari awal web, sebelum diketahui secara luas bahwa alamat IP akan habis dan tindakan konservasi dimulai, dan masih dilakukan dengan cara ini untuk host virtual SSL (tidak menggunakan SNI).
Karena metode transmisi nama host ini memerlukan koneksi yang sudah ada, metode ini tidak berfungsi dengan koneksi SSL / TLS. Pada saat koneksi aman diatur, server web harus sudah tahu nama host mana yang akan digunakan untuk klien, karena server web itu sendiri sedang menyiapkan koneksi aman.
SNI memecahkan masalah ini dengan meminta klien mengirimkan nama host sebagai bagian dari negosiasi TLS, sehingga server sudah mengetahui virtual host mana yang harus digunakan untuk melayani koneksi. Server kemudian dapat menggunakan sertifikat dan konfigurasi untuk host virtual yang benar.
Mengapa tidak menggunakan alamat IP yang berbeda?
Host:
Header HTTP didefinisikan untuk memungkinkan lebih dari satu host Web dilayani dari satu alamat IP karena kekurangan alamat IPv4, yang diakui sebagai masalah sejak pertengahan 1990-an. Dalam lingkungan hosting web bersama, ratusan situs Web unik dan tidak terkait dapat dilayani menggunakan alamat IP tunggal dengan cara ini, menghemat ruang alamat.
Lingkungan shared hosting kemudian menemukan bahwa konsumen terbesar dari ruang alamat IP adalah kebutuhan untuk situs web yang aman untuk memiliki alamat IP yang unik, menciptakan kebutuhan akan SNI sebagai tindakan penghenti kesenjangan dalam perjalanan ke IPv6. Saat ini kadang-kadang sulit untuk mendapatkan sedikitnya 5 alamat IP (/ 29) tanpa pembenaran yang signifikan, sering mengakibatkan keterlambatan penyebaran.
Dengan munculnya IPv6, teknik konservasi alamat seperti itu tidak lagi diperlukan, karena satu host dapat memiliki lebih banyak alamat IPv6 yang ditugaskan untuknya daripada seluruh Internet yang ada saat ini, tetapi teknik tersebut mungkin masih akan digunakan jauh ke masa depan untuk melayani warisan IPv4 koneksi.
Peringatan
Beberapa kombinasi sistem operasi / browser tidak mendukung SNI (lihat di bawah), jadi menggunakan SNI tidak sesuai untuk semua situasi. Situs yang menargetkan kombinasi sistem / browser seperti itu harus melupakan SNI dan terus menggunakan alamat IP unik untuk setiap host virtual.
Catatan khusus, tidak ada versi Internet Explorer pada Windows XP yang mendukung SNI. Karena kombinasi ini masih mewakili bagian yang signifikan (tetapi terus menurun; sekitar 16% dari lalu lintas Internet pada bulan Desember 2012 menurut NetMarketShare) dari lalu lintas Internet, SNI tidak akan sesuai untuk situs yang menargetkan populasi pengguna ini.
Dukung
Banyak, tetapi tidak semua, paket perangkat lunak yang umum digunakan mendukung SNI.
(Kelalaian dari daftar ini tidak selalu berarti kurangnya dukungan; itu berarti ada batasan seberapa banyak saya bisa mengetik, atau saya tidak dapat dengan cepat menemukan informasi dalam pencarian. Jika paket perangkat lunak Anda tidak terdaftar, cari untuk namanya plus sni
harus mengungkapkan jika ada dukungan dan cara mengaturnya.)
Dukungan Perpustakaan
Sebagian besar paket bergantung pada perpustakaan eksternal untuk memberikan dukungan SSL / TLS.
- GNU TLS
- JSSE (Oracle Java) 7 atau lebih tinggi, hanya sebagai klien
- libcurl 7.18.1 atau lebih tinggi
- NSS 3.1.1 atau lebih tinggi
- OpenSSL 0.9.8j atau lebih tinggi
- OpenSSL 0.9.8f atau lebih tinggi, dengan mengonfigurasi flag
- Qt 4.8 atau lebih tinggi
Dukungan Server
Sebagian besar versi terbaru dari perangkat lunak server populer mendukung SNI. Instruksi pengaturan tersedia untuk sebagian besar dari ini:
Dukungan Klien
Sebagian besar browser web dan agen pengguna baris perintah saat ini mendukung SNI.
Desktop
- Chrome 5 atau lebih tinggi
- Chrome 6 atau lebih tinggi pada Windows XP
- Firefox 2 atau lebih tinggi
- Internet Explorer 7 atau lebih tinggi, berjalan pada Windows Vista / Server 2008 atau lebih tinggi
- Internet Explorer pada Windows XP tidak mendukung SNI terlepas dari versi IE
- Konqueror 4.7 atau lebih tinggi
- Opera 8 atau lebih tinggi (mungkin memerlukan TLS 1.1 diaktifkan untuk berfungsi)
- Safari 3.0 pada Windows Vista / Server 2008 atau lebih tinggi, atau Mac OS X 10.5.6 atau lebih tinggi
Mobile
- Browser Android pada 3.0 Honeycomb atau lebih tinggi
- iOS Safari di iOS 4 atau lebih tinggi
- Windows Phone 7 atau lebih tinggi
Garis komando
- CURL 7.18.1 atau lebih tinggi
- wget 1,14 atau lebih tinggi (Distribusi mungkin telah mendukung patch untuk dukungan SNI)
Tidak ada dukungan
- Browser BlackBerry
- Internet Explorer (versi apa pun) pada Windows XP
(Catatan: Beberapa informasi untuk jawaban ini diperoleh dari Wikipedia .)