Sunucunun sunduğu (stapled) OCSP yanıtının geçerlilik süresi dolmuşsa Firefox bu yanıtı "eski" sayar ve hata verir. Tipik sebep, stapling önbelleğinin yenilenememesidir.
Belirtiler
Site bir süre sorunsuz çalışıp sonra hata verir; sunucu yeniden başlatılınca düzelir. Bu, yanıtın yenilenmediğinin güçlü bir işaretidir.
Nedenler
- Sunucu, CA'nın OCSP adresine çıkış bağlantısı kuramıyor (güvenlik duvarı, DNS)
- Nginx'te
resolvertanımlı değil - Apache stapling önbelleği yapılandırılmamış
- "Must-Staple" sertifikada staple yenilenemiyor
Çözüm
Önce yanıtın tarihini görün:
openssl s_client -connect ornek.com:443 -servername ornek.com -status | grep -A3 'OCSP Response'
Nginx yapılandırması:
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/ssl/ornek-zincir.pem;
resolver 1.1.1.1 8.8.8.8 valid=300s;
Apache yapılandırması:
SSLUseStapling On
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
Sunucudan curl ile CA'nın OCSP adresine erişimi de test edin; gerekirse çıkış kuralını açın.
Önleme
Stapling kullanıyorsanız hata loglarını izleyin ve özellikle Must-Staple sertifikalarda yenilemenin çalıştığını düzenli doğrulayın. Zincir ve stapling durumunu SSL Checker ile sınayabilirsiniz; sorun gidermede SSL sorun giderici de faydalıdır.
Yenileme mantığı ve izleme
Sunucu, stapling yanıtını süresi dolmadan önce yenilemelidir. Nginx yanıtı ilk istekte tembel biçimde (lazy) alır; bu nedenle yeniden başlatmanın hemen ardından ilk ziyaretçi staple alamayabilir. Apache ise önbellekteki yanıtı periyodik olarak yeniler ve hatalar error.log'a yazılır.
- Hata loglarında "OCSP" veya "stapling" geçen satırları arayın.
- Sunucudan CA'nın OCSP URL'sine erişimi engelleyen bir giden trafik kuralı olup olmadığını kontrol edin.
- Sertifikanızdaki OCSP adresini görmek için şu komut işe yarar:
openssl x509 -in site.crt -noout -ocsp_uri
Must-Staple içermeyen sertifikalarda geçici stapling sorunları çoğu istemcide sessizce atlanır; Firefox ise geçersiz bir yanıtı alırsa reddedebilir. Bu yüzden eski yanıtın hiç sunulmaması, bayat yanıt sunmaktan daha güvenlidir.