Evet, ama bazı uyarılar var.
Bu, Aktarım Katmanı Güvenliğinin bir uzantısı olan Sunucu Adı Göstergesi aracılığıyla gerçekleştirilir.
Sunucu Adı Göstergesi Nedir?
Sunucu Adı Gösterimi ( RFC 6066 ; eski RFC 4366 , RFC 3546 ), müşterinin sunucuya ulaşmaya çalıştığı ana bilgisayarın adını söylemesini sağlayan Aktarım Katmanı Güvenliği'nin bir uzantısıdır .
SNI, teknik özelliklere göre TLS 1.0 ve üzeri ile uyumludur, ancak uygulamalar değişebilir (aşağıya bakınız). SSL ile kullanılamaz, bu yüzden bağlantının SNI'yi kullanması için TLS ile görüşmesi gerekir (bkz. RFC 4346 ek E ). Bu genellikle desteklenen yazılımla otomatik olarak gerçekleşir.
SNI neden gerekli?
Normal bir HTTP bağlantısında tarayıcı, Host:
başlık kullanarak ulaşmaya çalıştığı sunucunun ana bilgisayar adını sunucuya bildirir . Bu, tek bir IP adresindeki bir web sunucusunun, genellikle ad tabanlı sanal barındırma olarak bilinen birden fazla ana bilgisayar adı için içerik sunmasını sağlar .
Alternatif, sunulacak her web ana bilgisayar adı için benzersiz IP adresleri atamaktır. Bu genellikle webin ilk günlerinde, IP adreslerinin tükeneceği ve koruma önlemlerinin başlayacağı yaygın olarak bilinmeden önce yapıldı ve hala SSL sanal ana bilgisayarları için (SNI kullanmadan) bu şekilde yapıldı.
Bu ana bilgisayar adını iletme yöntemi bağlantının önceden kurulmasını gerektirdiğinden, SSL / TLS bağlantılarıyla çalışmaz. Güvenli bağlantı kurulduğunda, web sunucusunun istemciye hangi ana bilgisayar adını sunacağını zaten bilmesi gerekir, çünkü web sunucusunun kendisi güvenli bağlantı kurmaktadır.
SNI bu sorunu, müşterinin TLS anlaşmasının bir parçası olarak ana bilgisayar adını iletmesini sağlayarak sunucunun bağlantıya hizmet etmek için hangi sanal ana bilgisayarın kullanılması gerektiğinin farkındadır. Sunucu daha sonra doğru sanal ana bilgisayar için sertifikayı ve yapılandırmayı kullanabilir.
Neden farklı IP adresleri kullanmıyorsunuz?
HTTP Host:
üstbilgisi, IPv4 adreslerinin yetersizliği nedeniyle, 1990'ların ortaları kadar bir sorun olarak kabul edilen, birden fazla Web sunucusunun tek bir IP adresinden sunulmasına izin verecek şekilde tanımlandı. Paylaşılan web barındırma ortamlarında, yüzlerce benzersiz, ilgisiz Web sitesi, bu şekilde tek bir IP adresi kullanarak sunulabilir ve adres alanını korur.
Paylaşılan barındırma ortamları daha sonra en büyük IP adres alanı tüketicisinin, güvenli web sitelerinin benzersiz IP adreslerine sahip olma gereksinimi olduğunu ve bu da SNI gereksinimini IPv6 yolunda bir durgunluk önlemi olarak yarattığını belirtti. Bugün, önemli ölçüde gerekçesiz olarak sık sık dağıtım gecikmeleri ile sonuçlanan 5 IP adresi (/ 29) 'dan az elde etmek bazen zordur.
IPv6'nın ortaya çıkmasıyla, böyle bir adres koruma tekniği artık gerekli değildir, çünkü tek bir ana bilgisayar, bugünün tüm İnternet'in içerdiğinden daha fazla IPv6 adresine sahip olabilir, ancak teknikler muhtemelen eski IPv4'e hizmet etmek için ileride kullanılacaktır. bağlantıları.
Uyarılar
Bazı işletim sistemi / tarayıcı kombinasyonları SNI'yi desteklemez (aşağıya bakınız), bu nedenle SNI kullanımı tüm durumlar için uygun değildir. Bu tür sistem / tarayıcı kombinasyonlarını hedefleyen sitelerin SNI'den vazgeçmesi ve her sanal ana bilgisayar için benzersiz IP adresleri kullanmaya devam etmesi gerekir.
Özellikle, Windows XP'deki Internet Explorer sürümü SNI'yi desteklememektedir. Bu kombinasyon, İnternet trafiğinin hala önemli (ancak giderek azaldığı; Aralık 2012'de İnternet trafiğinin yaklaşık% 16'sı) İnternet trafiğinin bir bölümünü temsil ettiğinden, bu kullanıcı popülasyonlarını hedefleyen bir site için SNI uygun değildir.
Destek
Yaygın olarak kullanılan birçok yazılım paketi SNI'yi desteklemektedir.
(Bu listedeki ihmal, mutlaka destek eksikliği anlamına gelmez; bu, ne kadar yazabileceğimin bir sınırı olduğu anlamına gelir veya bir aramada bilgileri hızlıca bulamadım. Yazılım paketiniz listede yoksa, arama yapın. çünkü adı artı sni
, destek olup olmadığını ve nasıl kurulacağını açıklamalıdır.)
Kütüphane Desteği
Çoğu paket, SSL / TLS desteği sağlamak için harici bir kütüphaneye dayanır.
- GNU TLS
- JSSE (Oracle Java) 7 veya daha üstü, yalnızca bir istemci olarak
- libcurl 7.18.1 veya daha yüksek
- NSS 3.1.1 veya daha üstü
- OpenSSL 0.9.8j veya daha yüksek
- OpenSSL 0.9.8f veya daha üstü, configure bayraklı
- Qt 4.8 veya daha yüksek
Sunucu Desteği
Popüler sunucu yazılımının en güncel sürümleri SNI'yi destekler. Bunların çoğu için kurulum talimatları mevcuttur:
Müşteri Desteği
Mevcut web tarayıcılarının çoğu ve komut satırı kullanıcı aracıları SNI'yi destekler.
Masaüstü
- Chrome 5 veya daha üstü
- Windows XP'de Chrome 6 veya üzeri
- Firefox 2 veya üstü
- Internet Explorer 7 veya üzeri, Windows Vista / Server 2008 veya üzeri işletim sistemi
- Windows XP'deki Internet Explorer, IE sürümünden bağımsız olarak SNI'yi desteklemiyor
- Konqueror 4.7 veya daha yüksek
- Opera 8 veya daha üstü (TLS 1.1'in çalışması için etkin olabilir)
- Windows Vista / Server 2008 veya üzeri sürümlerde Safari 3.0 veya Mac OS X 10.5.6 veya üst sürümlerinde
seyyar
- 3.0 Honeycomb veya daha yüksek sürümlerde Android Tarayıcı
- iOS 4 veya üzeri sürümlerde iOS Safari
- Windows Phone 7 veya üstü
Komut satırı
- cURL 7.18.1 veya daha yüksek
- 1.14 veya üstü wget (Dağıtımlar SNI desteği için bir yamayı desteklemiş olabilir)
Destek yok
- BlackBerry Tarayıcı
- Windows XP'de Internet Explorer (herhangi bir sürüm)
(Not: Bu cevap için bazı bilgiler Wikipedia'dan alınmıştır .)