TLS el sıkışması CPU açısından pahalıdır. Session cache, daha önce bağlanmış istemcilerin tam el sıkışma yapmadan oturumu sürdürmesini sağlar; bu, özellikle çok sayıda yeniden bağlanan kullanıcı olan sitelerde gecikmeyi ve işlemci yükünü azaltır.
Nginx ayarı
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;
shared:SSL:10mtüm worker süreçlerinin paylaştığı 10 MB'lık önbellektir. Nginx dokümantasyonuna göre yaklaşık 1 MB, 4000 oturum tutar.ssl_session_timeoutoturumun ne kadar süre yeniden kullanılabileceğini belirler.ssl_session_tickets off, ticket anahtarı döndürme yönetiminiz yoksa ileri gizlilik açısından daha güvenli seçimdir.
Apache ayarı
SSLSessionCache "shmcb:/var/run/apache2/ssl_scache(512000)"
SSLSessionCacheTimeout 300
SSLSessionTickets off
Dosya yolu dağıtıma göre değişir. SSLSessionCache yönergesi sanal konak içinde değil, sunucu genel yapılandırmasında tanımlanır.
Doğrulama
OpenSSL ile aynı oturumun yeniden kullanıldığını görebilirsiniz:
openssl s_client -connect alanadi.com:443 -tls1_2 -reconnect -no_ticket 2>/dev/null | grep -E "Reused|New"
Çıktıda ilk bağlantı için New, sonrakiler için Reused satırlarını görmelisiniz. TLS 1.3'te mekanizma farklı çalışır (PSK ile devam ettirme), bu yüzden testte -tls1_2 bayrağı kullanıyoruz.
İpuçları
- Önbelleği trafiğinize göre boyutlandırın; çok küçük önbellek eski oturumları erken siler.
- Çok sunuculu kurulumlarda her sunucunun kendi önbelleği olduğunu, yük dengeleyicinin aynı istemciyi aynı sunucuya yönlendirmesi gerektiğini unutmayın.
- Ayar değişikliğinden önce yapılandırma testi yapın:
nginx -tveyaapachectl configtest.
Genel TLS ayarlarınızı SSL Checker ile kontrol edebilir, SSL sertifikaları için sayfamıza göz atabilirsiniz.