Ana içeriğe geç

Rehberler / Düzeltin: insanların gerçekten karşılaştığı hatalar için rehberler

ERR_CERT_DATE_INVALID: Süresi Dolmuş Sertifika mı Yanlış Saat mi

ERR_CERT_DATE_INVALID, tarayıcının bir tarih kontrolü başarısız olduğu için sitenin sertifikasını reddettiği anlamına gelir: sertifikanın süresi dolmuş, henüz geçerli değil, veya cihazın kendi saati yanlış. Bu özellikle bir tarih sorunudur, bir güven veya ana bilgisayar adı sorunu değil, bu yüzden düzeltme ya sertifikada ya da onu okuyan saattedir.

ERR_CERT_DATE_INVALID ne anlama gelir

Her TLS sertifikası iki zaman damgası taşır, "Valid from" ve "Valid to" (X.509 alanları notBefore ve notAfter). El sıkışma sırasında, tarayıcı bu zaman damgalarını kendi mevcut zaman fikriyle karşılaştırır. Sertifikanın penceresi kapandıysa, veya henüz açılmadıysa, veya tarayıcının saati herhangi bir nedenle "şimdi"yi bu pencerenin dışına yerleştiriyorsa, el sıkışma, tarayıcı sertifikayı kimin verdiğini kontrol etmeye bile geçmeden durur. Chrome ve Edge, NET::ERR_CERT_DATE_INVALID gösterir. Firefox, süresi dolmuş durum için SEC_ERROR_EXPIRED_CERTIFICATE gösterir. Safari, "This certificate has expired" veya "This certificate is not yet valid" gösterir.

İki ayrı durum aynı uyarıyı üretir, ve tarayıcı size hangisi olduğunu söyleyemez: sertifika gerçekten süresi dolmuş veya henüz geçerli değil, veya sertifika iyi durumda ve istemcinin saati yanlış. İkisi de aynı karşılaştırmayı başarısız kılar.

Hata nasıl görünür

Bir tarayıcıda, sayfa hiç yüklenmez ve zaten yüklenmiş bir sayfada bir asma kilit hata simgesi yerine tam sekme uyarısı görünür. "Advanced"e tıklamak, Chrome'da belirli nedeni ve sertifikanın kendi tarihlerini gösterir.

Komut satırından, curl aynı başarısızlığı daha fazla kesinlikle bildirir:

curl -v https://example.com/
...
* SSL certificate problem: certificate has expired
* Closing connection

Henüz geçerli olmayan bir sertifika, "certificate is not yet valid" okuyan benzer bir satır üretir. Site sahibinin tarafındaki sunucu ve uygulama günlükleri genellikle bu hata için hiçbir şey göstermez, çünkü TLS el sıkışması herhangi bir HTTP isteği günlüğe kaydedilmeden önce başarısız olur. Kanıt web sunucusunun erişim günlüğünde değil, sertifikada ve istemcide yaşar.

ERR_CERT_DATE_INVALID'e ne sebep olur

  • Sertifikanın süresi doldu. "Valid to" tarihinden önce yenileme gerçekleşmedi, çoğunlukla otomatik bir yenileme işinin sessizce çalışmayı durdurması yüzünden.
  • Sertifika henüz geçerli değil. Daha az yaygın: bir sertifika, gelecekte biraz olan bir "Valid from" tarihiyle verildi veya yeniden verildi, veya bir sunucu penceresi açılmadan önce yeni bir sertifika sunmaya başladı.
  • Zincirdeki bir ara sertifikanın süresi doldu. Yaprak sertifika tamamen güncel olabilirken, sunucunun hala gönderdiği bir ara sertifika kendi süresini doldurmuş olabilir, ve bazı istemciler zincirdeki her sertifikayı kontrol eder.
  • Ziyaretçinin cihaz saati yanlış. Aylardır kapalı olan bir dizüstü bilgisayar, otomatik zaman senkronizasyonu devre dışı bırakılmış bir telefon, veya ölü bir CMOS pili olan bir cihaz, herhangi bir yönde yıllarca yanlış bir tarihle önyükleme yapabilir.
  • Eski saatli bir sanal makine veya konteyner. Anlık görüntüsü alınmış, klonlanmış veya uzun bir aradan sonra devam ettirilmiş sanal makineler, bir NTP senkronizasyonu tamamlanana kadar yakalanmamış bir saatle sık sık önyükleme yapar.
  • Yanlış yapılandırılmış bir saat dilimi veya kendi zaman kaynağı olmayan bir kullanıcı ya da kiosk tarzı bir cihaz tarafından ayarlanmış yanlış bir manuel tarih.

Kimin hatası olduğunu nasıl anlarsınız

En hızlı ayırma, sertifikayı etkilenen cihazdan başka bir yerden kontrol etmektir. Bilinen doğru saate sahip ikinci bir cihaz, veya kendi ağınızın dışında bir kontrol noktası, siteyi bir tarih uyarısı olmadan yüklüyorsa, sertifika iyi durumdadır ve sorun o tek cihazın saatine özgüdür. Her bakış açısı aynı süresi dolmuş veya henüz geçerli olmayan tarihi bildiriyorsa, sertifikanın kendisinin dikkat gerektirdiği anlamına gelir. Birden fazla konumdan aynı anda bir SSL kontrolü çalıştırmak, test etmek için ikinci bir dizüstü bilgisayar ödünç almak yerine bunu tek bir adımda çözer.

ERR_CERT_DATE_INVALID nasıl düzeltilir

Bir ziyaretçiyseniz

  1. Önce cihazınızın tarihini, saatini ve saat dilimini kontrol edin. Bu, kendi kendine neden olunan en yaygın tek nedendir, özellikle otomatik zaman senkronizasyonu kapalı olan Android cihazlarında, kullanılmadan duran eski dizüstü bilgisayarlarda, ve arızalı bir CMOS piline sahip makinelerde. "Zamanı otomatik ayarla"yı açın ve sadece saat yüzünü değil, yılın doğru olduğunu onaylayın.
  2. Siteyi farklı bir cihaz veya ağda deneyin. Başka bir yerde temiz yükleniyorsa, orijinal cihazınızın saati (veya bağlantıyı yakalayan bir yakalama portalı) sorunun kaynağıdır, site değil.
  3. Başka bir şey yapmadan önce uyarı sayfasındaki gerçek tarihleri okuyun. Chrome'un "Advanced" paneli ve sertifika görüntüleyicisi, düz metin olarak "Valid from" ve "Valid to"yu gösterir, ki bu size sertifikanın süresi dolmuş, henüz geçerli değil, veya saatinizin aykırı değer olduğunu hemen söyler.
  4. Hassas bir şeyi ele alan bir sitede gerçekten süresi dolmuş bir sertifikada tıklayıp geçmeyin. Saat düzeltildikten sonra yeniden yükleyin; aynı bozuk durumu sadece yeniden denemeyin.

Siteyi çalıştırıyorsanız

  1. Bir takvim hatırlatıcısına güvenmek yerine sertifikanın kendi tarihlerini doğrudan okuyun:
    openssl s_client -connect example.com:443 -servername example.com /dev/null   | openssl x509 -noout -dates
    Bu, sunucunun şu anda gerçekte sunduğu sertifikadan doğrudan notBefore ve notAfter'ı yazdırır.
  2. Let's Encrypt kullanıyorsanız, sadece sertifikayı değil yenileme işini kontrol edin. Let's Encrypt sertifikaları tasarım gereği 90 gün sürer ve yaklaşık 30 günlük işaretin etrafında otomatik olarak yenilenir, ama otomasyon kimse fark etmeden haftalarca sessizce başarısız olabilir: systemctl status certbot.timer (veya eşdeğer cron girişi), zamanlayıcının hala etkin olduğunu ve tetiklendiğini doğrular, ve certbot renew --dry-run, canlı hiçbir şeyi değiştirmeden yenileme yolunu çalıştırır. Gerçek başarısızlık için /var/log/letsencrypt/letsencrypt.log'u okuyun, ki bu neredeyse her zaman şunlardan biridir: API kimlik bilgileri süresi dolmuş bir DNS-01 zorlu görevi, HTTP-01 zorlu görevi yolunu engelleyen bir güvenlik duvarı değişikliği, veya tekrarlanan sorun gidermeler sırasında Let's Encrypt'in hız sınırlarına çarpma.
  3. Sadece yaprak sertifikayı değil, sunucunuzun gönderdiği tam zinciri kontrol edin:
    openssl s_client -connect example.com:443 -servername example.com -showcerts /dev/null   | openssl x509 -noout -dates -in -
    Bazı sunucular, yaprağı değiştirdikten sonra diskten eski bir ara sertifika sunmaya devam eder. Zincirdeki her sertifikanın güncel bir geçerlilik penceresine ihtiyacı vardır, çünkü bazı istemciler tüm yolu doğrular.
  4. Sunucunun kendi sistem saatini doğrulayın. Yanlış saatli bir sunucu, yanlış bir "Valid from" tarihiyle otomatik yenilemeler verebilir, ve ayrıca sertifikadan bağımsız olarak kendi OCSP ve el sıkışma doğrulamasını başarısız kılabilir. NTP'nin çalıştığını ve senkronize olduğunu doğrulayın.
  5. Sertifikayı yenileyin veya yeniden verin, sonra web sunucusunu yeniden yükleyin. Diskte oturan yenilenmiş bir sertifika, TLS sunan süreç onu alana kadar hiçbir şey yapmaz: nginx -s reload, systemctl reload apache2, veya kendi kopyasını tutan bir yük dengeleyici ya da CDN kenarı için eşdeğeri.
  6. Yeniden yükledikten sonra düzeltmeyi kendi altyapınızın dışından doğrulayın, çünkü makinenizdeki bir tarayıcı veya işletim sistemi bir oturum için eski sertifikayı önbelleğe alabilir.

ERR_CERT_DATE_INVALID nasıl önlenir

Süresi dolmakta olan bir sertifika, özellikle onu izlemeyen kimseye hiçbir uyarı vermez: site, pencere tam olarak kapanana kadar çalışmaya devam eder, sonra her ziyaretçi aynı anda aynı uyarıyı görür. Sertifikanın tarihlerini okuyan ve son tarihten önce uyaran zamanlanmış bir SSL kontrolü, ziyaretçiler bozuk bir site bildirmeye başladıktan sonra değil, sessiz bir yenileme başarısızlığını günler öncesinden düzeltilebilir bir bilete dönüştürür. HostTracker'ın SSL ve alan adı süresi dolma kontrolleri, sertifikanın gerçek geçerlilik penceresini altyapınızın dışından izler ve süresi dolmadan önce e-posta, SMS, sesli arama, Slack, Telegram ve daha fazlasıyla uyarır; şimdi SSL sertifika kontrolü ile bir tane çalıştırın. SSL sertifikası süresinin dolmasını kontrol etme üzerine yardımcı kılavuz, bunu ayarlamayı daha ayrıntılı olarak ele alır.

İlgili hatalar

  • ERR_CERT_AUTHORITY_INVALID - sertifikanın tarihleri iyi durumdadır, ama tarayıcı onu kimin verdiğine güvenmez.
  • ERR_CERT_COMMON_NAME_INVALID - sertifika geçerli ve güvenilir, ama adres çubuğundaki ana bilgisayar adı için verilmemiş.
  • ERR_SSL_PROTOCOL_ERROR - herhangi bir sertifikaya ulaşılmadan önce el sıkışma başarısız oldu, genellikle bir TLS sürümü, port veya yapılandırma uyuşmazlığı.

Sık sorulan sorular

Bir ERR_CERT_DATE_INVALID uyarısına tıklayıp geçmek güvenli mi?

Sadece nedenin kendi cihazınızın saati olduğundan eminseniz, çünkü bunu bağımsız olarak doğrulayabilirsiniz. Sertifikanın kendisi gerçekten süresi dolmuşsa, tıklayıp geçmek, gerçek sunucuyla şifrelenmiş, doğrulanmış bir kanal üzerinden konuştuğunuzu onaylayan tek kontrolü kaldırır.

Bu neden bir cihazı sıfırladıktan veya kutusundan çıkardıktan hemen sonra olur?

Fabrika ayarlarına sıfırlama veya uzun süre kullanılmayan bir cihaz, genellikle iç saati bazen yıllar öncesine ayarlanmış varsayılan bir tarihe sıfırlanmış olarak önyükleme yapar. İnternete bağlanıp saati otomatik olarak senkronize edene kadar, sadece bir tane değil, her HTTPS sitesi bir tarih hatasıyla başarısız olabilir.

Tarayıcı önbelleğimi temizlemek ERR_CERT_DATE_INVALID'i düzeltir mi?

Nadiren. Bu hata, sertifikanın tarihleri ile mevcut saat arasında her bağlantıda taze olarak değerlendirilen canlı bir karşılaştırmadır, bu yüzden bir önbellek temizliği sonucu değiştirmez. Saati veya sertifikayı düzeltmek değiştirir.

Let's Encrypt sertifikam neden hiçbir uyarı olmadan süresi doldu?

Yenileme tamamen otomatik olması amaçlandığından, kimse onu manuel olarak kontrol etmez, bu yüzden bozuk bir cron işi, süresi dolmuş bir DNS API kimlik bilgisi, veya değiştirilmiş bir güvenlik duvarı kuralı, sertifika gerçekten süresi dolana kadar görünür bir belirti olmadan haftalarca yenilemeleri sessizce durdurabilir.

Bir CDN veya yük dengeleyici, ziyaretçilerin bu hata için gördüğünü değiştirebilir mi?

Evet. CDN kenarı süresi dolmuş bir sertifika tutuyorsa, kaynak sunucunun hangi sertifikaya sahip olduğuna bakılmaksızın her ziyaretçi hatayı görür, bu yüzden başarısız olan istek için TLS'yi gerçekte sonlandıran katmanı kontrol edin.

Sertifikamın süresinin dolmasını ne sıklıkla kontrol etmeliyim?

Günlük otomatik bir kontrol, bir yenileme başarısızlığını haftalar öncesinden yakalamak için yeterlidir, çünkü Let's Encrypt sertifikaları 90 gün geçerlidir ve diğer çoğu sertifika 90 günden bir yıla kadar çalışır.

Şimdi kontrol edin

Ücretsiz kontrolü kendi sitenizde çalıştırın - hesap gerekmez.

SSL check

Bunu sürekli izleyin

Bir sorun çıktığı anda haberdar olun: HostTracker 300’den fazla konumdan kontrol eder ve size e-posta, SMS, Slack, Telegram ve daha fazlasıyla bildirim gönderir.

HostTracker özellikleri

Bu bölümde daha fazlası: Düzeltin: insanların gerçekten karşılaştığı hatalar için rehberler