Yazılım ve Mühendislik
SSL Sertifikaları: Süre Aşımı, Zincirler ve Trafik Kaybettiren Hatalar
Sertifikalar neden bozulur, siteniz bilgisayarda düzgünken mobilde neden hata verir ve ücretli sertifikalara para ödemenin neden gereksiz olduğu.
Süresi dolmuş bir SSL sertifikası bir web sitesini yavaşlatmaz; onu doğrudan tam ekran bir güvenlik uyarısının arkasına kilitleyerek tamamen kapatır. Ziyaretçilerin çoğu bu uyarıyı geçip siteye girmez, arama motoru botları ise siteyi erişilemez kabul eder.
Ciro düşmez, sıfıra iner. Ve bu durum kurumsal şirketlerin başına sürekli gelir; çünkü çöküş anına kadar sistem tamamen sessizdir.
İşte en sık yaşanan arızalar ve site kapanmadan önce bunları yakalama yöntemleri:
Süre aşımı: Sessizce duran otomatik yenilemeler
Let's Encrypt sertifikaları 90 gün geçerlidir ve 60. günde otomatik yenilenecek şekilde tasarlanmıştır. Otomasyon riski tamamen siler — ta ki yenileme zamanlanmış görevi (cron) bozulana ve kimse bunu bir ay boyunca fark etmeyene kadar.
Yenileme çok sıradan sebeplerle bozulur: bir güvenlik duvarı kuralı doğrulama isteğini engeller, bir güncellemede site kök dizini değişir, DNS API anahtarının süresi dolar, sunucu diski dolar veya işletim sistemi güncellemesinde certbot paketi bozulur. Bunların hiçbiri uyarı vermez. Sertifika yenilenmeyi durdurur ve 30 gün sonra site uyarı ekranına düşer.
Sizi gerçekten koruyan kural: Yenileme sürecinden bağımsız olarak canlı sertifikanın kalan süresini dışarıdan izleyin. Uyarı sisteminiz "certbot başarılı oldu mu" üzerine kuruluysa, zaten bozulan mekanizmaya güveniyorsunuz demektir. Uyarı sisteminiz "canlı sertifikanın bitmesine 14 günden az mı kaldı" üzerine kuruluysa, öngöremediğiniz her türlü arızayı önceden yakalarsınız.
14 günlük bir eşik koyun. 60. günde yenilenmesi gerekip bitimine 14 gün kalmış 90 günlük bir sertifika kesin olarak bozulmuştur ve sakince düzeltmek için tam iki haftanız vardır.
Alan adı kapsamı: www karmaşası
Bir sertifika yalnızca Subject Alternative Name (SAN) alanında açıkça yazan alan adlarını kapsar. example.com için alınan bir sertifika, www açıkça listelenmemişse www.example.com adresini kapsamaz.
Kendi başınıza girdiğinizde asla göremeyeceğiniz bir hatadır; çünkü alan adınızı her zaman aynı şekilde yazarsınız. Oysa sitenize www yazarak giren veya eski bir bağlantıyı tıklayan kullanıcılar doğrudan tam ekran güvenlik uyarısıyla karşılaşır.
Her zaman ikisini de kontrol edin.
Joker karakterler (Wildcard) tam olarak tek bir alt seviyeyi kapsar. *.example.com sertifikası shop.example.com adresini kapsar ama eu.shop.example.com adresini kapsamaz. Ayrıca çıplak alan adını (example.com) da kapsamaz; onun ayrıca listelenmesi gerekir.
Sertifika zinciri sorunları: Masaüstünde çalışan, mobilde çöken site
Sertifikanız bir ara sertifika (intermediate certificate) tarafından imzalanır, o da tarayıcının zaten güvendiği bir kök sertifika (root certificate) tarafından imzalanır. Sunucunuz ara sertifikayı da göndermek zorundadır.
Sunucunuz yalnızca ana sertifikayı gönderirse, masaüstü Chrome tarayıcıları eksik ara sertifikayı kendisi indirerek aradaki boşluğu kapatır. Ancak birçok mobil tarayıcı, uygulama içi web görünümleri, eski Android cihazlar ve API istemcileri bunu yapmaz ve doğrudan "Güvenilmeyen Sertifika" hatası verir.
Bir sitenin sizin dizüstü bilgisayarınızda sorunsuz çalışıp müşterinin telefonunda çökmesinin sebebi budur. TLS testlerinde "bende çalışıyor" geçerli bir test değildir. Yalnızca kilit simgesine değil, tam sertifika zincirinin gönderildiğine bakın.
Ücretsiz SSL Kontrol Aracımız sertifika süresi ve kapsamının yanında zincir uzunluğunu da raporlar.
TLS sürümleri
- TLS 1.3 — Güncel standart. El sıkışmayı iki tur yerine tek turda tamamlar; bu da her bağlantıda somut bir hız kazancıdır.
- TLS 1.2 — Kabul edilebilir minimum güvenlik düzeyi.
- TLS 1.1 ve 1.0 — Eskimiştir, modern tarayıcılar tarafından reddedilir ve PCI-DSS ödeme uyumluluğunu bozar.
Ücretsiz ve ücretli sertifika farkı
Şifreleme kalitesi açısından tamamen aynıdır. Let's Encrypt, yılda binlerce lira ödenen ticari sertifikalarla birebir aynı algoritmaları, aynı anahtar uzunluklarını kullanır ve tarayıcılardan aynı muameleyi görür.
Ücretli sertifikaların tek farkı kurumsal kimlik doğrulamasıdır (OV/EV).
Tarayıcılar bu ayrımı yıllar önce kaldırdı. Şirket adının yazdığı yeşil adres çubuğu Chrome, Firefox ve Safari'den tamamen kaldırıldı. Bugün hiçbir ziyaretçi sertifika detaylarına tıklayıp incelemediği sürece ücretli bir EV sertifikasını ücretsiz olandan ayırt edemez.
Dürüst duruş: Özel bir yasal sözleşme şart koşmadığı sürece ücretsiz sertifika kullanın. O bütçeyi pazarlamanın veya yazılımın başka bir alanına harcamak çok daha mantıklıdır.
Sertifika süreleri giderek kısalıyor
Tarayıcılar artık 398 günden daha uzun süreli sertifikaları reddediyor ve sektör bunu 90 güne, ardından 47 güne düşürme planları yapıyor.
Bunun pratik sonucu: Manuel sertifika yönetimi dönemi tamamen bitmiştir. Sertifika yenilemeniz bir insanın dosya indirip sunucuya yüklemesine dayanıyorsa, bu süreç çok yakında sürdürülemez hale gelecektir. Şimdiden otomatikleştirin.
Karma içerik (Mixed Content)
Geçerli bir sertifikanız olsa bile güvenli kilit simgesi çıkmayabilir. Bir HTTPS sayfası düz HTTP üzerinden herhangi bir kaynak yüklerse (bir resim, font, script veya stil dosyası) tarayıcılar bunu ya engeller ya da güvenlik seviyesini düşürür.
Script ve stiller doğrudan engellenir ve genellikle sayfayı bozar. Resimlere izin verilebilir ama adres çubuğundaki güvenli kilit simgesini kaldırır. Tüm linklerinizde açıkça https:// kullanın.
Neleri ne sıklıkla kontrol etmelisiniz?
Her ay otomatik olarak:
- Çıplak alan adı ve
wwwiçin kalan sertifika gün sayısı - Sertifika zincirinin eksiksizliği
- Sunucunun TLS sürümü
Barındırma veya CDN değişikliklerinden sonra:
- Yukarıdakilerin tümü + önemli sayfalarda karma içerik kontrolü
Bir kez yapıp unutulacak işlem:
- Siteniz için sertifika üretmeye yetkili otoriteleri belirten bir CAA DNS kaydı tanımlayın.
Özet
Sertifikalar üç şekilde arızalanır: Süresi biter, www versiyonunu kapsamaz veya zincir eksiktir. Canlı sertifikayı izleyerek birincisini, www adresini test ederek ikincisini, mobil cihazlardan veya API test araçlarıyla test ederek üçüncüsünü kolayca önleyebilirsiniz.