HSTS (HTTP Strict Transport Security), tarayıcıya sitenize bir süre boyunca yalnızca HTTPS ile bağlanmasını söyleyen bir yanıt başlığıdır. İlk ziyaretten sonra tarayıcı HTTP isteklerini kendisi HTTPS'ye çevirir; bu da SSL stripping saldırılarını ve sertifika uyarısının "yine de devam et" ile geçilmesini zorlaştırır.
Başlık biçimi
Strict-Transport-Security: max-age=31536000; includeSubDomains
- max-age: Tarayıcının kuralı kaç saniye hatırlayacağı (31536000 = bir yıl).
- includeSubDomains: Tüm alt alan adlarına uygulanır; hepsinin HTTPS çalıştığından emin olun.
- preload: Yalnızca preload listesine girmeyi planlıyorsanız eklenir.
Başlık yalnızca HTTPS yanıtlarında işlenir; HTTP yanıtındaki HSTS tarayıcılar tarafından yok sayılır.
Nginx
server {
listen 443 ssl;
server_name alanadi.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}
Apache
a2enmod headers
<VirtualHost *:443>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</VirtualHost>
Güvenli devreye alma adımları
- Tüm sayfaların, görsellerin ve alt alan adlarının HTTPS ile sorunsuz çalıştığını doğrulayın.
- Önce kısa bir süreyle başlayın (ör. max-age=300), sorun yoksa kademeli artırın.
- HTTP'den HTTPS'ye 301 yönlendirmesi ekleyin.
- Son olarak süreyi bir yıla çıkarın.
Kontrol
curl -sI https://alanadi.com | grep -i strict-transport
Dikkat edilecekler
- Sertifikanız süresi dolarsa, HSTS nedeniyle kullanıcılar hatayı aşamaz; yenilemeyi otomatik izleyin.
- Bir alt alan adı yalnızca HTTP ile çalışıyorsa includeSubDomains kullanmayın.
Sertifikanızı yenilemeyi aksatmamak için SSL sertifikaları sayfasına, sonucu sınamak için SSL Checker aracına bakın.