SSL Labs'ten A+ almak için neler yapmalıyım?
Kısa cevap
Dört koşul gerekir: herkese açık bir CA'dan alınmış ve zinciri tam sertifika; TLS 1.0/1.1'in kapalı olması (Min. SSL Version = TLSv1.2); forward secrecy sağlayan güçlü bir Cipher Algorithms seti (General, Strict Secure ya da Strict Hardware Accelerated) ve uzun süreli HSTS başlığı. Sürüm, cipher ve HSTS (SSL Labs en az 6 ay ister; 1 yıl ve includeSubDomains önerilir) bir TLS Security Profile'da toplanıp HTTP vService'in SSL Security modülünde seçilir; HSTS istenirse Manage HTTP Security Headers aksiyonuyla da eklenebilir. 80 portundaki istekler HTTPS'e yönlendirilir. Default Profile TLS 1.1'e izin verdiği ve HSTS eklemediği için A+ getirmez.
Sorun: SSL Labs Notu A+'nın Altında Kalıyor
SSL Labs notu; sertifikanın güvenilirliğine, desteklenen TLS sürümlerine, cipher paketlerine ve HSTS başlığına göre verilir. TLS 1.0/1.1'e izin vermek, zinciri eksik bırakmak ya da ileri gizliliği olmayan paketler sunmak notu düşürür; A+ ise ancak bunlara ek olarak uzun süreli bir HSTS başlığıyla verilir. TR7'nin Default Profile'ı TLS 1.1'e izin verir, ileri gizliliği olmayan paketleri de içeren Only Secure Ones setini kullanır ve HSTS eklemez.
| Koşul | TR7'de nerede |
|---|---|
| Güvenilir CA'dan, zinciri tam sertifika | Certificates & PKI → SSL/TLS Certificates; zincir Chain sekmesinde kontrol edilir (Intermediate certificate chain'i nasıl eklerim?) |
| TLS 1.0 ve 1.1 kapalı | TLS Security Profile → Min. SSL Version = TLSv1.2 |
| İleri gizlilikli, güçlü cipher'lar | TLS Security Profile → Cipher Algorithms = General, Strict Secure ya da Strict Hardware Accelerated |
| Uzun süreli HSTS | TLS Security Profile → HSTS (en az 6 ay; 1 yıl önerilir) ya da Manage HTTP Security Headers → Strict-Transport-Security (HSTS) |
| HTTP'den HTTPS'e yönlendirme | vService'te 80 portu için HTTP → HTTPS frontend satırı (HTTP'den HTTPS'e yönlendirmeyi nasıl yaparım?) |
Çözüm: Üç Yöntem
Yöntem 1 bütün ayarları tek profilde toplar; Yöntem 2 aynı profili komut satırından kurar; Yöntem 3 HSTS'i diğer güvenlik başlıklarıyla birlikte bir aksiyondan ekler.
| Durumunuz | Uygun yöntem |
|---|---|
| Arayüzden, tek profilde | Yöntem 1: A+ profili |
| Komut satırından | Yöntem 2: WEB-CLI |
| HSTS'i X-Frame-Options, X-Content-Type-Options gibi başlıklarla birlikte eklemek | Yöntem 3: Profil + Manage HTTP Security Headers |
Yöntem 1: A+ Profili Önerilen
- Nasıl çalışır Sürüm, cipher ve HSTS ayarları tek bir TLS Security Profile'da toplanır ve HTTP vService'te seçilir.
- Nerede açılırCertificates & PKI → TLS Security Profiles · vService → Details → Frontend Settings → SSL Security
- Gereksinim Herkese açık bir CA'dan alınmış, zinciri tam sertifika; HTTP vService'te Encrypted (HTTPS) frontend
- vService tipi HTTP
Adım adım yapılandırma
Sol alttaki TR7 logosuyla Configuration Menu açılır; Certificates & PKI → TLS Security Profiles ekranında Add tıklanır (nasıl eklenir); Security Profile Name girilir.
Min. SSL Version = TLSv1.2 seçilir; Max. SSL Version kapalı bırakılır (TLS 1.3 de kabul edilir). Cipher Algorithms = Strict Secure (ya da General, Strict Hardware Accelerated) seçilir; TLS v1.3 Compatible seti seçilmez.
Frontend-only Settings bölümünde HSTS (Strict-Transport-Security header) açılır; HSTS Duration (max-age) 1 years yapılır (varsayılan 180 gün) ve Include Subdomains (includeSubDomains) açılır. Preload listesine başvurulacaksa Browser Preload List Flag (preload) de açılır; bu işaret yalnızca süre en az 1 yıl ve Include Subdomains açıkken kaydedilir (HSTS'i nasıl eklerim?).
Formun altındaki Add tıklanır.
Load Balancer → Load Balancer vService List ekranında HTTP vService seçilip Edit tıklanır.
Certificate alanında zinciri tam sertifikanın seçili olduğu ve 80 portu için Protocol = HTTP → HTTPS satırının bulunduğu kontrol edilir.
Details panelinde Frontend Settings altındaki SSL Security kutusu işaretlenir ve 4. adımdaki profil seçilir (vService'te profil seçimi).
Save tıklanır. Cluster kurulumunda varsayılan auto-sync ile değişiklik eş cihaza da gönderilir; Manual Sync Mode açıksa eş cihaza elle gönderilir.
Doğrulama
Site SSL Labs ile test edilir; daha önce test edildiyse Clear cache ile yeniden çalıştırılır.
A+ · TLS 1.0/1.1: No · HSTS: Yes · Chain issues: NoneKomut: curl -skI https://www.example.com/ | grep -i strict-transport-security
Strict-Transport-Security: max-age=31536000; includeSubDomainsYöntem 2: WEB-CLI
- Nasıl çalışır Aynı profil komut satırından oluşturulur ve vService'e atanır. WEB-CLI ile oluşturulan profilde alanlar arayüzdeki gibi Default Profile değerleriyle dolmadığından sürüm, cipher seti ve HSTS açıkça yazılır.
- Nerede açılır TR7 WEB-CLI →
lb ssl-security add·lb service update - Gereksinim WEB-CLI erişimi; Yöntem 1'deki sertifika ve yönlendirme koşulları
- vService tipi HTTP
Adım adım yapılandırma
Sürüm ve şifre alanları ile HSTS alanları aynı komutta yazılır; HSTS alt alanları --hsts true ardından gelir:
lb ssl-security add name aplus --minSslVersion TLSv1.2 --cipherAlgorithm strictSecure --hsts true --hstsMaxAge.val 1 --hstsMaxAge.unit y --hstsIncludeSubdomains true--sslSecurity vService'in profilini bu profille değiştirir:
lb service update id <vService> --sslSecurity aplusDoğrulama
Profil görüntülenir; ardından Yöntem 1'deki SSL Labs testi yapılır.
Komut: lb ssl-security show aplus
minSslVersion TLSv1.2 · cipherAlgorithm strictSecure · hsts true · A+Yöntem 3: Profil + Manage HTTP Security Headers
- Nasıl çalışır Sürüm ve cipher kuralları profilden gelir; HSTS ise Manage HTTP Security Headers aksiyonunun Strict-Transport-Security (HSTS) seçeneğiyle eklenir. Seçeneğin sabit değeri
max-age=16000000; includeSubDomains; preload;(yaklaşık 185 gün) uzun süreli HSTS koşulunu karşılar. Aynı aksiyon şu başlıkları da ekleyebilir: Content-Security-Policy (default-src 'self'), X-Frame-Options (SAMEORIGIN), X-XSS-Protection (1; mode=block), X-Content-Type-Options (nosniff), Referrer-Policy (no-referrer-when-downgrade), Permission-Policy (interest-cohort=();) ve sunucu parmak izi başlıklarının (Server, X-Powered-By, X-AspNet-Version, X-AspNetMvc-Version) silinmesi. SSL Labs notunu bunlardan yalnızca HSTS etkiler. - Nerede açılırCertificates & PKI → TLS Security Profiles · Load Balancer → Actions → Action Type = Manage HTTP Security Headers
- Gereksinim Yöntem 1'deki sertifika ve yönlendirme koşulları
- vService tipi HTTP
Adım adım yapılandırma
Yöntem 1'in 1, 2 ve 4. adımlarıyla Min. SSL Version = TLSv1.2 ve güçlü cipher setli bir profil oluşturulur; profilde HSTS kapalı bırakılır.
Load Balancer → Actions ekranında Add tıklanır (nasıl eklenir).
Action Name girilir; Action Type = Manage HTTP Security Headers seçilir. Response Headers listesinde Strict-Transport-Security (HSTS) ile istenen diğer başlıklar işaretlenir. Aksiyonda koşul ve çalışma anı alanı yoktur; her yanıtta çalışır, HSTS yalnızca HTTPS yanıtlarına yazılır. Strict-Transport-Security, Content-Security-Policy, X-Frame-Options ve Referrer-Policy yanıtta zaten varsa aksiyonun değeri onların yerine geçer; X-XSS-Protection ve X-Content-Type-Options ise mevcut başlığın yanına eklenir.
Add tıklanır.
Load Balancer → Load Balancer vService List ekranında HTTP vService seçilip Edit tıklanır.
Details panelinde Frontend Settings altındaki SSL Security kutusu işaretlenip 1. adımdaki profil seçilir; Modules altındaki Actions kutusu işaretlenip 4. adımdaki aksiyon seçilir.
Save tıklanır.
Doğrulama
Komut: curl -skI https://www.example.com/; ardından SSL Labs testi yapılır.
Strict-Transport-Security: max-age=16000000; includeSubDomains; preload; · A+Sık Yapılan Hatalar
- Default Profile'da kalmak. TLS 1.1'e izin verdiği, ileri gizliliği olmayan paketleri sunduğu ve HSTS eklemediği için A+ alınmaz.
- HSTS süresini kısa tutmak. SSL Labs A+ için en az 6 aylık HSTS ister; profilde 1 yıl seçilir. Preload başvurusu için de en az 1 yıl gerekir.
- HSTS'i hem profilde hem aksiyonla eklemek. Aksiyonun değeri profilin değerinin yerine geçer; HSTS tek yerden yönetilir. Manage HTTP Security Headers'ın sabit değerindeki
preloadişareti, preload başvurusu için gereken 1 yılı karşılamaz. - Diğer güvenlik başlıklarının SSL Labs notunu yükselteceğini düşünmek. X-Frame-Options, CSP gibi başlıklar uygulama güvenliğini artırır; SSL Labs notunu HSTS dışında etkilemez.
- L7 TCP vService'te HSTS beklemek. HSTS bir HTTP başlığıdır; yalnızca HTTP vService'te eklenir.
- Eksik zinciri gözden kaçırmak. Zincir eksikse not düşer; sertifikanın Chain sekmesi kontrol edilir (Sertifika zincirinin eksik olduğunu nasıl anlarım?).
Dokümantasyonda nasıl yapılır
