HTTP → HTTPS frontend protokol seçeneği ile Redirect to HTTPS action'ı arasındaki fark nedir?
Kısa cevap
İkisi de şifresiz gelen isteği aynı adresin HTTPS sürümüne yönlendirir. HTTP → HTTPS frontend protokol seçeneği, o frontend satırının IP:port'una gelen bütün şifresiz trafiği sabit 301 koduyla yönlendirir, yalnızca şifresiz bağlantılara uygulandığı için döngü oluşturmaz ve istisna tanımlanamaz. Redirect to HTTPS action'ı ise condition'larla sınırlanabilir (ör. /api dışındaki istekler) ve yönlendirme kodu seçilebilir; ancak kendiliğinden döngü koruması içermez, bu yüzden hazır If SSL is NOT terminated condition'ıyla birlikte kullanılır.
Nasıl Çalışır?
- Frontend protokol seçeneği: 80 portlu satırın Protocol alanında Redirect grubundaki HTTP → HTTPS seçilir. TR7 bu IP:port'a şifresiz gelen her isteği
https://ile aynı adrese (aynı Host, path ve query) 301 ile yönlendirir. Yönlendirme yalnızca bu satırın IP:port'una gelen şifresiz bağlantılara uygulanır; condition eklenemez. - Redirect to HTTPS action'ı: Load Balancer → Actions altında oluşturulur ve vService'in Actions listesine eklenir. Yalnızca istek aşamasında çalışır. Bağlanan condition'lar sağlandığında isteği
https://ile aynı adrese yönlendirir; condition bağlanmazsa vService'e gelen bütün isteklere (HTTPS ile gelenler dahil) uygulanır. HTTPS ile gelen istekleri dışarıda bırakmak için hazır If SSL is NOT terminated condition'ı eklenir. - Çalışma sırası: İki yöntem de vService'in diğer istek kurallarından (action'lar, WAF, L7 DDoS & Threat Protection kararları) sonra uygulanır; Redirect to HTTPS action'ının Actions listesindeki yeri bunu değiştirmez.
Karşılaştırma
| Frontend: HTTP → HTTPS | Redirect to HTTPS action'ı | |
|---|---|---|
| Nerede ayarlanır | vService → Frontend → Protocol | Load Balancer → Actions; vService → Details → Actions |
| Kapsam | O satırın IP:port'una gelen bütün şifresiz trafik | Condition'lara uyan istekler; condition yoksa bütün istekler |
| Yönlendirme kodu | Sabit 301 | Redirect Scheme Code ile seçilir (varsayılan 301; 301, 302, 303, 307 ya da 308 kullanılır) |
| Döngü koruması | Var; yalnızca şifresiz bağlantılara uygulanır | Yok; If SSL is NOT terminated condition'ı eklenir |
İstisna (ör. /api hariç) | Tanımlanamaz | Condition'ların NOT biçimiyle tanımlanır |
| Frontend satırı | 80 satırı yalnızca yönlendirme yapar | 80 satırı HTTP (şifresiz) protokolüyle istek kabul eder; yönlendirilmeyen istekler Kurum Servisine gider |
| vService tipi | HTTP | HTTP |
| HSTS | Eklemez | Eklemez |
Hangisini Kullanmalıyım?
| Durumunuz | Yöntem |
|---|---|
| Sitenin tamamı HTTPS'e yönlendirilecek | Frontend: HTTP → HTTPS |
| Bazı path'ler, istemciler ya da alan adları şifresiz kalmalı ya da yalnızca bunlar yönlendirilmeli | Redirect to HTTPS action'ı + condition; bkz. örnek senaryo |
| Yönlendirme 302, 307 ya da 308 gibi farklı bir kodla yapılmalı | Redirect to HTTPS action'ı |
Tarayıcıların siteyi bir sonraki ziyarette doğrudan HTTPS ile açması için iki yöntemin yanında TLS Security Profile'daki HSTS ayarı açılır.
Örnek Senaryo: /api Dışındaki İstekleri HTTPS'e Yönlendirmek
Web sitesinin bütün sayfaları HTTPS'e yönlendirilecek; ancak http:// ile çağrılan eski API istemcilerinin /api ile başlayan istekleri yönlendirilmeden şifresiz hizmet almaya devam edecek. Frontend'deki HTTP → HTTPS seçeneği istisna tanımlayamadığı için bu senaryo Redirect to HTTPS action'ıyla kurulur.
- Nasıl çalışır 80 portu şifresiz istek kabul eder. Redirect to HTTPS action'ı yalnızca hem şifresiz gelen hem de path'i
/apiile başlamayan isteklerihttps://adresine yönlendirir;/apiistekleri 80 portunda Kurum Servisine iletilir. - Nerede açılırLoad Balancer → Conditions → Path; Load Balancer → Actions → Redirect to HTTPS; vService → Frontend ve Details → Actions
- Gereksinim vService IP'sinin bir arayüze eklenmiş olması; 443 için sertifika
- vService tipi HTTP
Load Balancer → Conditions → Add adımları izlenir.
Condition Name alanına api-path yazılır; Criteria olarak Path seçilir. Eşleştirme yöntemi olarak Regex seçilir ve değer olarak ^/api(/|$) yazılır. Bu ifade /api, /api/ ve /api/v1/orders ile eşleşir; /apiary ve /products ile eşleşmez. Daha basit bir tanım için Start ile /api/ de kullanılabilir (bu durumda tam /api path'i yönlendirilir). Path eşleşmesi varsayılan olarak büyük/küçük harfe duyarlıdır.
Add butonuna tıklanır.
Load Balancer → Actions → Add adımları izlenir; Action Type olarak Redirect to HTTPS seçilir. Redirect Scheme Code varsayılan 301 kalır.
Conditions alanında aynı gruba iki condition seçilir: listede !api-path olarak görünen, 3. adımda kaydedilen condition'ın NOT biçimi ve hazır If SSL is NOT terminated condition'ı. Grup içindeki birleştirme and (varsayılan) kalır; böylece action yalnızca hem şifresiz gelen hem de /api ile başlamayan isteklerde çalışır.
Add butonuna tıklanır.
Load Balancer → Load Balancer vService List ekranında HTTP vService açılır. Frontend tablosunda iki satır bulunur: 80 portlu satırın Protocol alanında Unencrypted grubundaki HTTP seçilir (HTTP → HTTPS seçilmez; seçilirse /api istekleri de yönlendirilir), 443 portlu satırda Encrypted (HTTPS) grubundan HTTP/1.1 ya da HTTP/2 ve Certificate alanında sertifika seçilir. vService IP'si listede yoksa önce Network → Interfaces → Add IP ile arayüze eklenir.
Details → Actions listesine 6. adımda kaydedilen action eklenir.
Save butonuna tıklanır.
curl -I "http://www.example.com/urunler?sayfa=2"HTTP/1.1 301 · location: https://www.example.com/urunler?sayfa=2curl -I http://www.example.com/api/v1/ordersKurum Servisinin yanıtı (301 yok)curl -I https://www.example.com/ doğrudan 200 döner. Action'ın kaç kez çalıştığı, action'da Hit Counter açılarak vService Dashboard'undaki Action Hits sekmesinden izlenir.Sık Karıştırılan Noktalar
- "Redirect to HTTPS'i koşulsuz eklemek yeterlidir." Koşulsuz action HTTPS ile gelen istekleri de yönlendirir ve sonsuz yönlendirme döngüsü oluşur; If SSL is NOT terminated condition'ı eklenir.
- "Frontend'de HTTP → HTTPS seçiliyken action ile istisna tanımlarım." Frontend seçeneği 80 portundaki bütün istekleri yönlendirir; istisna gerekiyorsa 80 satırı HTTP yapılır ve yönlendirme action'la kurulur.
- "İkisini birlikte kullanmak daha güvenlidir." İkisi birlikte iki ayrı yönlendirme tanımı oluşturur; biri yeterlidir.
- "Yönlendirme HSTS'i de ekler." HSTS ayrı bir ayardır ve TLS Security Profile'dan açılır.
Dokümantasyonda nasıl yapılır
