HTTPS sitem için HTTP vService mi, L7 TCP vService mi kullanmalıyım?
Kısa cevap
HTTPS web siteleri için HTTP vService kullanılır: TLS TR7'de sonlandırılır, istek HTTP olarak okunur ve WAF, AGS, Cache, Compression, X-Forwarded-For, Actions ve path'e göre yönlendirme kullanılabilir; gerekirse trafik Kurum Servisine SSL Service ile yeniden şifrelenerek gönderilir. L7 TCP yalnızca TLS oturumunun Kurum Servisine dokunulmadan ulaşması gerekiyorsa (SSL passthrough) seçilir: frontend satırında Protocol olarak TCP seçilir ve Kurum Servisinde SSL service kapalı kalır. Bu durumda HTTP'ye özgü özelliklerin hiçbiri kullanılamaz.
Nasıl Çalışır?
- HTTP vService (TLS TR7'de sonlanır): Sertifika TR7'ye yüklenir ve frontend satırında Protocol alanının Encrypted (HTTPS) grubundan bir protokol (HTTP/1.1 ya da HTTP/2) seçilir. TLS TR7'de çözülür, istek okunur ve işlenir. Kurum Servisine şifresiz ya da Kurum Servisindeki SSL Service açıksa yeniden şifrelenmiş olarak iletilir; böylece trafik uçtan uca şifreli kalırken TR7 içeriği görebilir.
- L7 TCP, Protocol: TCP (SSL passthrough): Frontend satırında Protocol alanının Unencrypted grubundaki TCP seçilir; TR7 TLS'i açmaz, şifreli akışı olduğu gibi Kurum Servisine iletir. TLS el sıkışmasındaki SNI şifre çözülmeden okunabildiği için alan adına göre yönlendirme SSL SNI Info koşuluyla yapılabilir; isteğin içeriği görülmez.
- L7 TCP, Protocol: TCP + TLS: TLS TR7'de sonlandırılır, ancak akış HTTP olarak ayrıştırılmaz; HTTP'ye özgü özellikler bu durumda da kullanılamaz.
L7 TCP ile Passthrough Ayarları
Passthrough'ta TLS istemci ile Kurum Servisi arasında kurulur; TR7 iki noktada şifrelemeye karışmamalıdır:
| Nerede | Alan | Değer | Neden |
|---|---|---|---|
| vService formu | Type | L7 TCP | Passthrough bağlantı düzeyinde yapılır. |
| Frontend satırı | Protocol | TCP (Unencrypted grubu). API'de frontend satırının ssl alanı boş (None) kalır. | TCP + TLS seçilirse TLS TR7'de sonlandırılır; passthrough olmaz. Certificate alanı yalnızca TCP + TLS seçili bir satır varken görünür. |
| Kurum Servisi formu | SSL Service | Kapalı (varsayılan) | SSL service açıkken TR7, Kurum Servisine kendi TLS oturumunu açar; istemcinin şifreli akışı ikinci bir TLS katmanının içine girer ve sunucudaki TLS el sıkışması başarısız olur. |
| Kurum Servisi formu | Address | Sunucunun TLS dinlediği port (ör. 192.0.2.20:443) | Sertifika ve TLS sunucuda olduğu için TLS portuna bağlanılır. |
Kurum Servisi tarafında: Sertifika ve özel anahtar sunucuda bulunur ve sunucu TLS'i kendisi sonlandırır. Sunucu, istemcilerin bağlandığı alan adına ait sertifikayı sunmalıdır; TR7 sertifikaya dokunmaz. Adım adım yapılandırma: SSL passthrough nedir; ne zaman termination yerine passthrough kullanmalıyım?
Karşılaştırma
| HTTP vService | L7 TCP (passthrough) | |
|---|---|---|
| Sertifika nerede | TR7'de (SSL/TLS Certificates) | Kurum Servisinde |
| WAF, AGS | ✓ | ✗ |
| Cache, Compression | ✓ | ✗ |
| X-Forwarded-For, Trusted Proxy | ✓ | ✗ |
| Yönlendirme ölçütleri (Conditional Backend Services) | Path, başlık, çerez, SNI, kaynak IP… | Kaynak IP, hedef port, SNI (SSL SNI Info koşulu) |
| HTTP/2, HTTP/3 | TR7'de frontend Protocol ile seçilir | TR7'de ayarı yoktur; HTTP/2 istemci ile sunucu arasında anlaşılır |
| HTTP → HTTPS yönlendirmesi | ✓ (Protocol: HTTP → HTTPS) | ✗ |
| Persistence | New cookie, Current cookie, Hash, SAM | Hash |
| Kurum Servisine şifreli iletim | ✓ (SSL service ile yeniden şifreleme) | ✓ (istemcinin TLS oturumu) |
| İstemci sertifikası doğrulama (mTLS) | TR7'de (TLS Security Profiles) | Kurum Servisinde |
| İstek kayıtları | HTTP Logs (her istek) | TCP Logs (her bağlantı) |
Ne Zaman L7 TCP?
| Durumunuz | Tür |
|---|---|
| Sertifika ve özel anahtar TR7'ye konabiliyor | HTTP |
| Özel anahtar kurum politikası gereği yalnızca sunucuda kalmalı | L7 TCP (passthrough) |
| İstemci sertifikasını Kurum Servisi kendi TLS oturumunda doğrulamak zorunda | L7 TCP (passthrough) |
| Trafik HTTPS değil, TLS üzerinde başka bir protokol | L7 TCP |
Sık Karıştırılan Noktalar
- "Uçtan uca şifreleme için L7 TCP gerekir." HTTP vService, TLS'i sonlandırdıktan sonra Kurum Servisine SSL Service ile yeniden şifreler; trafik yine uçtan uca şifreli olur (SSL bridging nedir; backend'e giden trafiği de nasıl şifrelerim?).
- "Passthrough'ta Kurum Servisinin SSL service seçeneği de açılmalı." SSL service, TR7'nin Kurum Servisine kendi TLS oturumunu açması demektir; passthrough'ta kapalı kalır.
- "L7 TCP ile de path'e göre yönlendirme yaparım." L7 TCP isteği HTTP olarak okumaz; kaynak IP, port, SNI ve TLS bilgilerine göre yönlendirir.
- "İstemci sertifikası (mTLS) için passthrough şarttır." TR7 istemci sertifikasını TLS Security Profiles ile kendisi doğrulayabilir; passthrough yalnızca doğrulamanın sunucuda yapılması zorunluysa gerekir.
Dokümantasyonda nasıl yapılır
