SSL SNI Info
SSL SNI Info Koşulu Nedir?
SSL SNI Info koşulu, TLS handshake sırasında istemcinin gönderdiği sunucu adı bilgisini değerlendirerek trafik yönlendirme kararları almak için kullanılan bir koşul tipidir.
SNI, TLS handshake'in şifrelenmemiş kısmında yer alır ve istemcinin hangi domain'e bağlanmak istediğini belirtir.
Bu koşul, TR7'nin SSL/TLS bağlantısını sonlandırmadan (decrypt etmeden) SNI bilgisini okuyabilmesine dayanır. Bu sayede SSL pass-through senaryolarında bile domain bazlı yönlendirme yapılabilir.
SSL SNI Info Koşulunun Önemi
SNI, tek bir IP adresi üzerinden birden fazla SSL/TLS sitesinin barındırılmasını sağlayan önemli bir TLS uzantısıdır.
SSL SNI Info koşulu sayesinde;
- SSL terminasyonu yapmadan domain bazlı yönlendirme yapılabilir,
- Tek IP üzerinde birden fazla HTTPS sitesi farklı Kurum Servislerine yönlendirilebilir,
- End-to-end şifreleme korunarak trafik yönetimi yapılabilir,
- SNI değerine göre farklı Kurum Servisi gruplarına yönlendirme yapılabilir,
- TCP seviyesinde SSL pass-through load balancing uygulanabilir.
SNI vs HTTP Host Header:
| Özellik | SNI | Host Header |
|---|---|---|
| Katman | TLS (Layer 5) | HTTP (Layer 7) |
| Şifreleme | Şifrelenmemiş | HTTPS'te şifreli |
| SSL Terminasyon | Gerekli değil | Gerekli |
| Görünürlük | Her zaman okunabilir | SSL decrypt sonrası |
| Kullanım | SSL pass-through | HTTP processing |
Kullanılabildiği vService Tipleri
Nasıl Eklenir?
Yeni bir SSL SNI Info Koşulu, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlar izlenerek eklenebilir:
- Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
- Load Balancer → Conditions → Add adımları takip edilir.
- Criteria olarak SSL SNI info seçilir.
- Koşula ait ilgili konfigürasyonlar yapılandırılır.
Addbutonuna tıklanarak koşul eklenir.
SSL SNI Info Koşulu Ekleme Formu
SSL SNI Info Koşulu Ekleme Formu
INFO
Condition Name
Oluşturulacak koşul için isteğe bağlı bir isim girilebilir.
Bu alan, özellikle aşağıdaki senaryolarda önemlidir:
- Aynı vService altında çok sayıda koşul tanımlandığında,
- Benzer kriterlere sahip koşulların ayırt edilmesi gerektiğinde,
- Koşulun hangi iş kuralını temsil ettiğinin hızlıca anlaşılması istendiğinde.
Bu alan boş bırakıldığında, TR7 ilgili koşulun içeriğini analiz ederek Condition Description alanında otomatik ve açıklayıcı bir isim oluşturur. Oluşturulan bu açıklama, koşul listelerinde isim olarak kullanılır.
INFO
Criteria Zorunlu
Koşulun tipini belirleyen alandır; aranabilir açılır listeden SSL SNI info seçilir. Bu seçim, formda görüntülenecek alanları belirler. Kriter, koşul kaydedildikten sonra değiştirilemez: farklı bir kritere ihtiyaç duyulursa yeni bir koşul tanımlanır. Listedeki tüm kriterler ve kapsamları için Conditions sayfasındaki kriter kataloğuna bakılabilir.
INFO
Query Zorunlu
Eşleştirilecek SNI değeri (domain adı) girilir. Eşleşme tam metindir ve büyük/küçük harfe duyarsızdır (ayrıca bir seçenek işaretlemek gerekmez); joker (*.example.com), kısmi ad veya birden fazla domain girilemez: her domain için ayrı koşul tanımlanır.
İnceleme Beklemesi
Bu koşulun kullanıldığı vService'te TR7, SNI'ı okuyabilmek için bağlantının ilk paketlerini inceler; TLS el sıkışması gelmeyen bağlantılarda kabul 10 saniyeye kadar gecikebilir. Bu davranış, koşul tanımlandığında otomatik olarak devreye girer ve vService'in tüm trafiğini etkiler.
TIP
SNI değeri, aksiyonlarda ve log formatlarında İstemciden Gelen SNI Bilgisi akıllı değişkeniyle kullanılabilir. Bu koşulun asıl kullanım alanı SSL sonlandırılmayan (passthrough) L7 TCP vService'lerdir; SSL sonlandırma yapılan vService'lerde host ayrımı için Virtual Host / HTTP Header koşulları tercih edilmelidir.
INFO
Condition Description
Girilen kriter ve değerler doğrultusunda TR7 tarafından otomatik olarak oluşturulur.
Bu açıklama;
- Koşulun hangi değer için geçerli olduğunu,
- Hangi kriter üzerinden çalıştığını,
- Listeleme ekranlarında koşulun hızlıca anlaşılmasını
sağlayacak şekilde sistem tarafından dinamik olarak üretilir.
INFO
Form Butonları
Add
Add butonuna tıklanarak koşul ekleme işlemi tamamlanır.
Add & Repeat
Add & Repeat butonu ile koşul ekleme işlemi tamamlanır ve farklı konfigürasyonlarla ilgili pencereden çıkılmadan yeni bir koşul daha eklenebilir.
Koşul Eklendi
Operasyonel Kullanım Önerileri
- SSL Pass-Through için Kullanın. End-to-end şifreleme korunması gereken senaryolarda SNI bazlı yönlendirme kullanın.
- TCP vService Tercih Edin. SSL terminasyonu yapmayacaksanız TCP vService ile SNI bazlı yönlendirme yapın.
- Harf Duyarlılığı Derdi Yok. Eşleştirme her zaman büyük/küçük harfe duyarsızdır; ek bir seçenek işaretlemek gerekmez.
- Subdomain'leri Tek Tek Tanımlayın. Eşleşme tam metin olduğundan joker/
Ends withbenzeri bir seçenek yoktur; hedeflenen her subdomain için ayrı koşul tanımlanır.
Canlı Ortamlarda Yaygın Kullanım Senaryoları
Aşağıdaki örnekler, ilgili koşulun gerçek sistemlerde en sık karşılaşılan kullanım senaryolarında nasıl uygulandığını göstermektedir. Bu senaryolar, canlı ortamlarda yaygın olarak tercih edilen ve sahada edinilmiş deneyimlere dayanan pratikleri temel alır.
Senaryo 1: SSL Passthrough'da SNI Bazlı Yönlendirme
Kullanım Amacı: Uçtan uca şifrelemenin korunduğu (SSL passthrough) bir L7 TCP vService'te, trafiği SNI değerine göre farklı Kurum Servisi gruplarına yönlendirmek.
Konfigürasyon: Query → app.example.com (diğer domain'ler için ayrı koşullar tanımlanır)
Aksiyon Önerileri:
- ✅ Conditional Backend Services →
app.example.comSNI'ı ile gelen bağlantılar uygulama Kurum Servisi grubuna, diğerleri varsayılan gruba yönlendirilir.
Senaryo 2: Beklenmeyen SNI Trafiğini İzleme
Kullanım Amacı: vService'e tanımlı domain dışında SNI ile gelen bağlantıları (yanlış yapılandırılmış istemciler, tarama denemeleri) ayrıştırıp izlemek.
Konfigürasyon: Query → www.example.com (koşulun değili kullanım yerinde seçilir: SNI bu değere eşit değilse)
Aksiyon Önerileri:
- ✅ Advanced Traffic Inspection → Beklenmeyen SNI değerleri İstemciden Gelen SNI Bilgisi akıllı değişkeniyle raporlanır; tarama/keşif denemeleri görünür olur.
