SSL zinciri eksik kurulduğunda bazı cihazlar siteye güvenli bağlantı kuramaz. Nedenlerini, belirtileri ve sunucu tarafında kontrol edilmesi gerekenleri öğrenin.
Bir web sitesi masaüstü tarayıcıda sorunsuz açılırken bazı Android telefonlarda, eski iPhone modellerinde, kurumsal ağlarda veya belirli tarayıcılarda güvenlik hatası verebilir. Bu durum çoğu zaman sertifikanın tamamen hatalı olmasından değil, SSL sertifika zincirinin eksik kurulmasından kaynaklanır. Kullanıcı tarafında görünen mesaj “bağlantınız gizli değil”, “certificate not trusted” veya “unable to get local issuer certificate” gibi farklı ifadelerle karşınıza çıkabilir.
SSL zinciri, sitenizin sertifikası ile onu doğrulayan ara sertifikalar ve kök sertifika otoritesi arasındaki güven ilişkisidir. Tarayıcı, yalnızca alan adınıza ait sertifikayı değil, bu sertifikanın hangi otorite tarafından ve hangi ara sertifika üzerinden verildiğini de kontrol eder. Zincirde bir halka eksikse bazı cihazlar bu boşluğu kendi sertifika deposundan tamamlayabilir; bazıları ise tamamlayamaz ve siteye erişimi engeller.
Bir SSL kurulumu genellikle üç temel parçadan oluşur: alan adına ait sunucu sertifikası, ara sertifika veya sertifikalar ve kök sertifika. Kök sertifikalar işletim sistemi, tarayıcı veya cihaz üreticisi tarafından güvenilir kabul edilen listelerde bulunur. Ara sertifikalar ise kök otorite ile sitenizin sertifikası arasında bağlantı kurar.
Sunucu, ziyaretçi siteye bağlandığında kendi sertifikasıyla birlikte ara sertifikaları da göndermelidir. Ziyaretçinin cihazı bu bilgileri kullanarak “Bu sertifika gerçekten güvenilir bir otoriteye kadar izlenebiliyor mu?” sorusuna yanıt arar. Eğer ara sertifika gönderilmezse doğrulama zinciri kopar.
Bu sorunun temel nedeni cihazlar ve tarayıcılar arasındaki sertifika deposu farkıdır. Güncel bir masaüstü tarayıcı, eksik ara sertifikayı daha önce önbelleğe almış olabilir veya otomatik olarak tamamlayabilir. Ancak eski mobil cihazlar, gömülü sistemler, bazı uygulama içi tarayıcılar ve sıkı güvenlik politikası uygulayan kurumsal ağlar aynı esnekliği göstermeyebilir.
Örneğin bir kullanıcı Chrome üzerinden siteye erişirken sorun yaşamazken, aynı site eski bir Android cihazda açılmayabilir. Benzer şekilde ödeme sistemleri, API istemcileri, mobil uygulamalar veya entegrasyon servisleri eksik zincir nedeniyle bağlantıyı reddedebilir. Bu nedenle sorun yalnızca ziyaretçi deneyimini değil, sipariş, form gönderimi ve servis entegrasyonlarını da etkileyebilir.
Eksik zincir her zaman aynı hata mesajıyla görünmez. Sorunu hızlı ayırt edebilmek için aşağıdaki belirtiler dikkate alınabilir:
En yaygın hata, yalnızca alan adı sertifikasının yüklenip ara sertifikaların yüklenmemesidir. Bazı kontrol panellerinde sertifika alanı ile CA bundle veya intermediate certificate alanı ayrı olabilir. Sertifika dosyası doğru görünse bile zincir dosyası boş bırakıldığında kurulum eksik kalır.
Bir diğer sorun, yanlış ara sertifikanın eklenmesidir. Aynı sertifika otoritesinin farklı ürünleri, farklı ara sertifikalar kullanabilir. Eski bir ara sertifikayı kopyalamak, zincirin teknik olarak hatalı kurulmasına neden olabilir. Özellikle sertifika yenileme sonrası eski dosyaların kullanılmaya devam edilmesi sık rastlanan bir durumdur.
Paylaşımlı hosting, VPS veya özel sunucu fark etmeksizin SSL kurulumu yapılırken sertifika zincirinin tam gönderildiği doğrulanmalıdır. Kontrol paneli kullanılıyorsa “certificate”, “private key” ve “CA bundle” alanlarının doğru dosyalarla doldurulduğundan emin olunmalıdır. Otomatik SSL sağlayan sistemlerde bile yenileme sonrası zincir kontrolü yapmak iyi bir uygulamadır.
Nginx tarafında genellikle fullchain dosyası kullanılmalı, Apache tarafında ise yapılandırmaya göre sertifika dosyasıyla birlikte zincir dosyası doğru tanımlanmalıdır. CDN veya WAF kullanılıyorsa yalnızca kaynak sunucudaki sertifika değil, uç noktada sunulan sertifika da kontrol edilmelidir. Çünkü kullanıcı çoğu zaman doğrudan sunucuya değil, aradaki servis katmanına bağlanır.
İlk adım, tarayıcıdaki kilit simgesinden sertifika yolunu incelemektir. Sertifika yolu alanında sitenizin sertifikası, ara sertifika ve güvenilir kök otorite sıralı biçimde görünmelidir. Arada boşluk, uyarı veya tanınmayan otorite ifadesi varsa zincir eksik ya da hatalı olabilir.
Daha teknik kontrol için SSL analiz araçları, komut satırı testleri veya sunucu kontrol panelleri kullanılabilir. Burada dikkat edilmesi gereken nokta yalnızca “sertifika süresi geçerli mi?” sorusuna bakmamaktır. Sertifika geçerli olabilir ancak zincir eksik olabilir. Bu iki durum birbirinden farklıdır.
SSL hatasını hızlı çözmek için sertifika doğrulamasını kapatmak, uygulamalarda güvenlik kontrolünü devre dışı bırakmak veya kullanıcıya “uyarıyı geç” demek doğru bir yaklaşım değildir. Bu tür çözümler veri güvenliğini zayıflatır ve kurumsal itibar açısından risk oluşturur. Sorun istemci tarafında değil, çoğu zaman sunucu tarafındaki eksik zincir sunumundadır.
Ayrıca sertifikayı yenilerken özel anahtar ile sertifika eşleşmesine dikkat edilmelidir. Yanlış private key kullanılırsa sunucu sertifikayı yüklemeyebilir veya servis yeniden başlatıldığında bağlantı tamamen kesilebilir. Canlı sistemlerde değişiklik yapmadan önce mevcut yapılandırmanın yedeğini almak ve mümkünse bakım zamanında işlem yapmak daha güvenlidir.
Kalıcı çözüm, sertifika sağlayıcısının verdiği doğru ara sertifikalarla tam zinciri kurmak ve sunucunun bu zinciri ziyaretçiye eksiksiz gönderdiğini test etmektir. Kurulumdan sonra yalnızca kendi bilgisayarınızdan değil, farklı işletim sistemi ve cihazlardan da doğrulama yapılmalıdır. Özellikle e-ticaret, üyelik, ödeme, API ve mobil uygulama bağlantıları olan sitelerde bu kontrol kritik önemdedir.
Düzenli izleme de önemlidir. Sertifika yenilendiğinde, hosting paneli değiştiğinde, sunucu taşındığında veya CDN devreye alındığında SSL zinciri yeniden test edilmelidir. Böylece site bazı kullanıcılarda çalışıp bazı kullanıcılarda hata veren belirsiz bir deneyim yerine, tüm cihazlarda tutarlı ve güvenilir bir bağlantı sunar.