Sunucunuzun SSL Labs testinden A+ notu alması, web sitenizin güvenliğini en üst seviyeye çıkarmak ve kullanıcı verilerini korumak için kritik öneme sahiptir.
Sunucunuzun SSL Labs testinden A+ notu alması, web sitenizin güvenliğini en üst seviyeye çıkarmak ve kullanıcı verilerini korumak için kritik öneme sahiptir. SSL Labs, Qualys tarafından geliştirilen bu test aracı, TLS/SSL yapılandırmanızı kapsamlı bir şekilde değerlendirir. A+ puanı almak, modern protokollerin kullanımını, güçlü şifreleme algoritmalarını ve ek güvenlik önlemlerini gerektirir. Bu makalede, Apache, Nginx gibi popüler sunucu yazılımları için adım adım yapılandırma rehberi sunarak, pratik adımları detaylandıracağız. Bu ayarlar, hem performans hem de uyumluluk açısından optimize edilmiştir.
TLS protokollerini doğru yapılandırmak, SSL Labs’in en kritik değerlendirme kriterlerinden biridir. Eski protokoller gibi SSL 2.0, SSL 3.0, TLS 1.0 ve TLS 1.1’i tamamen devre dışı bırakmalısınız. Bunlar Heartbleed, POODLE gibi bilinen güvenlik açıklarına sahiptir. Bunun yerine TLS 1.2 ve TLS 1.3’ü etkinleştirin. Nginx için ssl_protocols TLSv1.2 TLSv1.3; direktifini, Apache için ise SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 kullanın. Bu değişiklikleri yaptıktan sonra sunucuyu yeniden başlatın ve test edin.
Cipher suites seçimi de hayati öneme sahiptir. Zayıf cipher’lar (örneğin RC4, 3DES) puanınızı düşürür. Güçlü ECDHE ve AES tabanlı cipher’ları tercih edin. Nginx örneğinde: ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;. Apache’te benzer şekilde SSLCipherSuite ile tanımlayın. Forward secrecy için ECDHE’yi ön plana çıkarın. Bu ayarlar, her bağlantıda yeni anahtar üretimi sağlayarak oturum güvenliğini artırır.
Eski protokolleri kaldırmak için sunucu konfigürasyon dosyanızı düzenleyin. Nginx’te /etc/nginx/sites-enabled/default dosyasında ssl_protocols satırını ekleyin ve nginx -t ile doğrulayın. Apache’te /etc/apache2/mods-enabled/ssl.conf içinde SSLProtocol’u güncelleyin, ardından systemctl reload apache2 komutunu çalıştırın. Değişiklik sonrası openssl s_client -connect yourdomain.com:443 -tls1 ile TLS 1.0’un reddedildiğini doğrulayın. Bu adım, puanlamada 20-30 puanlık artış sağlar ve MITM saldırılarını önler.
Cipher listesini Mozilla’nın önerdiği modern standartlara göre uyarlayın. SSL Labs, cipher sırasını da kontrol eder; en güçlüleri başta olmalı. Örnek Nginx konfigi sonrası ssl_ciphers test edin. Apache kullanıcıları SSLOpenSSLConf ile özel ayarlar ekleyebilir. Uygulama sonrası SSL Labs taramasında “Cipher Strength” bölümünde A puanı alırsınız. Bu, mobil ve masaüstü tarayıcılarla tam uyumluluk sağlar.
Sertifika zincirinin tam ve doğru olması, chain issues hatasını önler. Let’s Encrypt gibi ücretsiz sertifika sağlayıcılarından tam zinciri indirin (fullchain.pem). Nginx’te ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; kullanın. Apache’te SSLCertificateFile ve SSLCertificateChainFile ile zinciri belirtin. Zincirdeki intermediate CA’ların güncel olması şarttır; eski versiyonlar puan düşürür.
OCSP Stapling, sertifika geçerliliğini sunucuda doğrular ve istemci gecikmesini azaltır. Nginx için ssl_stapling on; ssl_stapling_verify on; ekleyin ve resolver tanımlayın: resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s;. Apache’te SSLUseStapling on; SSLStaplingCache "shmcb:/var/run/ocsp(128000)". Bu özellik etkinleştiğinde SSL Labs “OCSP Stapling” için tam puan verir ve gizlilik artırır.
Sertifika sağlayıcınızdan fullchain dosyasını alın. Dosyayı base64 decode ederek zinciri kontrol edin: openssl crl2pkcs7 -nocrl -certfile fullchain.pem | openssl pkcs7 -print_certs -text. Zincirde root CA dahil tüm intermediate’ler olmalı. Sunucuya yükledikten sonra SSL Labs’te “Chain issues: None” sonucunu hedefleyin. Bu, tarayıcı uyarılarını ortadan kaldırır ve güvenilirlik puanını yükseltir.
Güvenlik başlıkları, SSL Labs’in ek puanlarını belirler. Strict-Transport-Security (HSTS) başlığını etkinleştirin: Nginx’te add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;. Apache’te Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload". Bu, HTTP Strict Transport Security protokolü ile HTTPS zorlar.
Session ticket’leri devre dışı bırakarak veya güvenli şekilde yapılandırarak resumption’ı optimize edin. Nginx’te ssl_session_tickets off;. Ayrıca TLSv1.3 ticket key rotation kullanın. Bu ayarlar, bağlantı hızını korurken güvenliği artırır. Tüm değişiklikleri uyguladıktan sonra SSL Labs taraması yapın ve Heartbleed, CCS gibi testleri geçin.
Bu yapılandırmaları adım adım uygulayarak sunucunuzu SSL Labs’ten A+ alacak hale getirin. Düzenli testler ve güncellemelerle güvenliğinizi koruyun; bu, kullanıcı sadakatini ve SEO performansını doğrudan etkiler. Pratikte, bu ayarlar %100 uyumluluk sağlar ve kurumsal standartlara ulaşmanızı garanti eder.