SSL bridging nedir; backend'e giden trafiği de nasıl şifrelerim?
Kısa cevap
SSL bridging'de istemcinin TLS bağlantısı önce TR7'de sonlandırılır; TR7 içeriği görüp işler, ardından Kurum Servisine kendi kurduğu yeni bir TLS bağlantısıyla iletir. İki bağlantı da şifreli olur, WAF ve aksiyonlar çalışmaya devam eder. TR7'de ayrı bir seçenek değildir: vService'te şifreli frontend ile Certificate ve Kurum Servisinde SSL Service birlikte kullanılır; Kurum Servisinin adresi sunucunun TLS portunu göstermelidir. Sunucunun sertifikası varsayılan olarak doğrulanmaz; doğrulama için Certificate Verification = Required ve bir Verification CA Profile seçilir.
Temel Bilgi
Reverse proxy olarak çalışan bir yük dengeleyicide trafik iki ayrı bağlantıdan geçer: istemci ile yük dengeleyici arası ve yük dengeleyici ile sunucu arası. Bu iki bağlantının şifreli olup olmadığı birbirinden bağımsızdır. Bridging (re-encryption), ilk bağlantıdaki TLS'in yük dengeleyicide sonlandırılıp ikinci bağlantıda yeniden kurulmasıdır; yük dengeleyici trafiği kısa bir süre çözülmüş olarak görür. Passthrough'ta ise TLS hiç sonlandırılmaz ve içerik görülmez.
Sorun: Şifreleme TR7'de Bitiyor, Sunucuya Kadar Ulaşmıyor
Varsayılan yapılandırmada (offloading) trafik TR7'ye kadar şifreli gelir, TR7'den Kurum Servisine şifresiz gider. TR7 ile sunucular aynı güvenli ağ bölümündeyse bu çoğu kurulumda yeterlidir. Ancak TR7 ile sunucular arasında paylaşımlı bir ağ, başka bir veri merkezi ya da bulut sağlayıcısının ağı varsa, mevzuat trafiğin hiçbir noktada şifresiz akmamasını istiyorsa ya da sunucu yalnızca TLS portunu açıyorsa TR7–sunucu bağlantısının da şifrelenmesi gerekir.
| Offloading | Bridging | Passthrough | |
|---|---|---|---|
| İstemci ↔ TR7 | Şifreli | Şifreli | Şifreli |
| TR7 ↔ Kurum Servisi | Şifresiz | Şifreli (TR7'nin kurduğu TLS) | Şifreli (istemcinin TLS'i) |
| TR7 içeriği görür mü | Evet | Evet | Hayır |
| Sertifika nerede | TR7 | TR7 ve sunucu | Yalnızca sunucu |
Çözüm
Bridging iki nesnede yapılandırılır: Kurum Servisinde SSL Service açılır ve vService'in frontend satırında TLS sonlandırılır. Kurum Servisindeki diğer TLS alanları isteğe bağlıdır; yalnızca sunucunun özel bir gereksinimi varsa ya da sunucu sertifikası doğrulanacaksa kullanılır.
SSL Service ile Bridging
- Nasıl çalışır vService'in şifreli frontend'inde TLS TR7'de sonlandırılır; SSL Service açık Kurum Servisine TR7 ayrı bir TLS bağlantısı kurar.
- Nerede açılırLoad Balancer → Backend Services → Edit → SSL Service · vService → Frontend → Protocol + Certificate
- Gereksinim Sunucularda TLS dinleyen port ve sertifika; TR7'de vService için sertifika
- vService tipi HTTP (Encrypted (HTTPS) protokolleri), L7 TCP (TCP + TLS)
- Etki alanı SSL Service Kurum Servisinin ayarıdır; o Kurum Servisini kullanan bütün vService'lerin trafiği şifreli iletilir.
Adım adım yapılandırma
vService'te sunulacak sertifika TR7'de yoksa Certificates & PKI → SSL/TLS Certificates ekranında Add tıklanır (nasıl eklenir).
Certificate Name girilir; Type = Manual ya da PFX seçilip sertifika ve anahtar girilir (Sertifikamı TR7'ye nasıl yüklerim; hangi formatlar destekleniyor?).
Formun altındaki Add tıklanır.
Load Balancer → Backend Services ekranında Kurum Servisi seçilip Edit tıklanır.
Address alanındaki port, sunucunun TLS dinlediği port yapılır (ör. 192.0.2.21 : 443). Port düz HTTP portunda (ör. 80) kalırsa TLS bağlantısı kurulamaz.
SSL Service anahtarı açılır (varsayılan kapalı). Altında TLS bağlantısını ayarlayan alanlar görünür; bridging için hiçbirinin değiştirilmesi gerekmez:
| Alan | Varsayılan | Ne zaman değiştirilir |
|---|---|---|
| Ciphers | Standard | Yalnızca eski şifreleme paketleri isteyen sunucular için Low |
| SNI | Boş (SNI gönderilmez) | Sunucu aynı adreste birden fazla sertifika sunuyorsa (Backend'e bağlanırken SNI göndermem gerekiyor; nasıl ayarlarım?) |
| ALPN | Boş | Sunucuyla HTTP/2 konuşulacaksa HTTP 2.0 Enabled |
| Backend SSL Security Profile | None | Sunucu bağlantısında TLS sürümü ve cipher listesi sınırlanacaksa bir TLS Security Profile |
| Certificate Verification | None | Sunucunun sertifikası doğrulanacaksa Required (7. adım) |
| Client Certificate Presented to Backend (mTLS) | None | Sunucu, TR7'den istemci sertifikası istiyorsa |
Certificate Verification = Required seçilir; görünen Verification CA Profile alanında sunucu sertifikasını imzalayan CA'nın Certificate Authorities (CA) kaydı seçilir. CA profili seçilmezse doğrulama yapılmaz. Sertifikadaki adın da denetlenmesi için SNI alanına sunucunun adı yazılır; SNI alanı yalnızca HTTP vService'te uygulanır (Backend'e HTTPS ile bağlanırken backend sertifikasını doğrulayabilir miyim?).
Formun altındaki Edit tıklanır. TR7 bu Kurum Servisine kaydedilir kaydedilmez TLS ile bağlanmaya başlar; Kurum Servisini kullanan bütün vService'ler etkilenir. Her Kurum Servisi için 4–8. adımlar tekrarlanır.
Load Balancer → Load Balancer vService List ekranında vService seçilip Edit tıklanır.
Save tıklanır. Cluster kurulumunda varsayılan auto-sync ile değişiklikler eş cihaza da gönderilir; Manual Sync Mode açıksa eş cihaza elle gönderilir.
Kurum Servisinde HTTP türünde bir Health Check profili kullanılıyorsa, sunucu artık TLS dinlediği için profilin Check Type değeri HTTPS yapılır; aksi hâlde sunucu sağlıksız görünebilir.
Doğrulama
Sunucuda TR7'den gelen trafiğin içeriği dinlenir.
Komut: tcpdump -A -nn -i any port 443
İstek satırı ve başlıklar okunamazGET /... HTTP/1.1 gibi okunabilir satırlar görülüyorsa SSL Service açılmamıştır ya da trafik başka bir porttan geliyordur.Load Balancer → Backend Services listesinde sağlık durumu kontrol edilir; site tarayıcıdan açılır.
Kurum Servisi sağlıklı, sayfa açılırSık Yapılan Hatalar
SSL Service doğrulama değildir
SSL Service bağlantıyı şifreler ama sunucunun kimliğini denetlemez. Certificate Verification varsayılan olarak None'dır; süresi dolmuş ya da başka bir ada ait bir sertifikayla da bağlantı kurulur. Uçtan uca güven gerekiyorsa Required ile birlikte Verification CA Profile seçilir; profil seçilmeden Required bırakılırsa doğrulama yapılmaz.
- Sunucu düz HTTP dinlerken SSL Service'i açmak. SSL Service sunucunun konuştuğu dili tanımlar: sunucu 80'de düz HTTP dinliyorsa açılmaz; TLS dinliyorsa açılması gerekir. Uyuşmazlık iki yönde de bağlantıyı keser.
- SSL Service'in yalnızca bir vService'i etkileyeceğini düşünmek. Alan Kurum Servisinin ayarıdır; aynı Kurum Servisini kullanan bütün vService'ler şifreli bağlanmaya başlar.
- Bridging'i passthrough sanmak. Bridging'de TR7 trafiği çözer ve WAF, koşullar, aksiyonlar çalışır; passthrough'ta TLS hiç açılmaz (SSL passthrough nedir; ne zaman termination yerine passthrough kullanmalıyım?).
- Bridging'den performans kazancı beklemek. Trafik TR7'de çözülüp yeniden şifrelenir ve sunucu da TLS işler; offloading'deki sunucu yükü kazancı bridging'de yoktur.
Dokümantasyonda nasıl yapılır
