15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
30.10.2024

SSL Güvenlik Hataları: Tanılama ve Düzeltme Konusunda Tam Rehber

SSL/TLS hataları, bir web sitesinin karşılaşabileceği en yıkıcı sorunlar arasındadır. Tek bir sertifika uyarısı, ziyaretçileri kaçırmaya yeterlidir — ve bunun iyi nedenleri vardır. Bu tarayıcı uyarıları, bir kullanıcı ile sunucu arasındaki şifreli bağlantının doğrulanamadığını gösterir ve hassas verileri riske atar. İster sinir bozucu bir uyarı sayfasıyla karşılaşan normal bir internet kullanıcısı olun, ister hızla artan bounce oranınızı izleyen bir web sitesi sahibi olun, SSL güvenlik hatalarını anlamak gereklidir.

Bu kapsamlı rehber, her başlıca SSL hata türünü, kök nedenini ve onu düzeltmek için gereken tam adımları — hem kullanıcı hem de sunucu yöneticisi perspektifinden — kapsar.

SSL/TLS Nedir ve Neden Önemlidir?

SSL (Secure Sockets Layer) ve modern halefi TLS (Transport Layer Security), bir web tarayıcısı ile web sunucusu arasında iletilen verileri şifreleyen kriptografik protokollerdir. Bir site HTTPS kullanıyorsa, bu bir SSL/TLS sertifikasının yerinde olduğu, sunucunun kimliğini doğruladığı ve transit sırasında verileri koruduğu anlamına gelir.

O sertifikayla ilgili bir şey ters giderse — süresi dolmuşsa, yanlış yapılandırılmışsa veya tarayıcı bunu doğrulayamazsa — bağlantı güvensiz olarak işaretlenir. Chrome, Firefox, Edge ve Safari gibi tarayıcılar, kullanıcıları olası ortadaki adam saldırılarından veya sahte sitelerden korumak için belirgin uyarı sayfaları görüntüler.

Web sitesi sahipleri için, bu hatalar sadece kullanıcı güvenini zedelemez — SEO sıralamalarına zarar verir, dönüşümleri azaltır ve hemen dikkat gerektiren daha derin altyapı sorunlarını gösterebilir.

En Yaygın SSL Güvenlik Hataları Açıklandı

1. NET::ERR_CERT_COMMON_NAME_INVALID

Anlamı: SSL sertifikasının Ortak Adı (CN) veya Konu Alternatif Adlarında (SAN) listelenen alan adı, tarayıcının ulaşmaya çalıştığı alan adıyla eşleşmez.

Yaygın nedenler:

  • www.example.com için verilen sertifika ancak site example.com üzerinden erişilir (veya tersi)
  • Joker sertifika (*.example.com) kök alanı kapsamaz
  • Farklı bir alandan gelen sertifika yanlışlıkla sunucuya uygulanır
  • Apache veya Nginx üzerinde yanlış yapılandırılmış sanal ana bilgisayarlar

2. SSL Sertifikası Süresi Dolmuş (NET::ERR_CERT_DATE_INVALID)

Anlamı: Her SSL sertifikasının bir geçerlilik süresi vardır — tipik olarak Let’s Encrypt için 90 gün veya ticari sertifikalar için 1–2 yıla kadar. Bu süre sona erdiğinde, tarayıcılar bağlantıyı hemen reddeder.

Yaygın nedenler:

  • Otomatik yenileme sessizce başarısız oldu (cron işi hatası, DNS sorunu, port 80 engellendi)
  • Manuel yenileme unutuldu
  • Sertifika yenilendi ancak web sunucusu tarafından yeniden yüklenmedi

3. Karışık İçerik Hatası

Anlamı: Sayfa HTTPS üzerinden sunulur, ancak bazı gömülü kaynaklar — resimler, JavaScript dosyaları, stil sayfaları, iframe’ler — hala düz HTTP üzerinden yüklenir. Tarayıcılar bu güvensiz alt kaynakları engeller veya uyarır.

Yaygın nedenler:

  • Sabit kodlanmış http:// URL’lerine sahip eski içerik
  • HTTP uç noktalarını kullanan üçüncü taraf widget’ları veya betikleri
  • HTTP’den HTTPS’ye geçirilen bir site iç bağlantılar güncellenmeden

4. NET::ERR_CERT_AUTHORITY_INVALID

Anlamı: Sertifika, tarayıcının güvenmediği bir Sertifika Yetkilisi (CA) tarafından verilmiştir. Bu, kendi imzalı sertifikalar veya özel/dahili CA’lardan gelen sertifikalarla olabilir.

Yaygın nedenler:

  • Kendi imzalı sertifika üretim ortamında kullanılır
  • Eksik sertifika zinciri (eksik ara sertifikalar)
  • Tarayıcı satıcıları tarafından güvensiz hale getirilen bir CA’dan sertifika

5. SSL_ERROR_RX_RECORD_TOO_LONG / Protokol Uyumsuzluğu

Anlamı: Tarayıcı ve sunucu ortak bir SSL/TLS protokol sürümü veya şifre paketi üzerinde anlaşamaz. Bu genellikle bir sunucu hala SSLv3 veya TLS 1.0 gibi kullanımdan kaldırılmış protokolleri desteklediğinde olur.

Yaygın nedenler:

  • Sunucu eski TLS sürümlerini kullanacak şekilde yapılandırılır
  • Güvenlik duvarı veya yük dengeleyici HTTPS trafiğini yanlış portta keser
  • HTTP trafiği HTTPS portuna gönderilir

6. Eski Tarayıcı

Anlamı: Eski tarayıcılar modern TLS sürümlerini (TLS 1.2 veya 1.3), yeni şifre paketlerini veya güncellenmiş sertifika biçimlerini desteklemeyebilir ve geçerli sertifikaların bozuk görünmesine neden olabilir.

Kullanıcı Olarak SSL Hatalarını Nasıl Düzeltilir

Bir web sitesini ziyaret ederken SSL uyarılarıyla karşılaşıyorsanız, sorun her zaman sunucu tarafında olmayabilir. İstemci tarafı sorunlarını dışlamak için aşağıdaki adımları izleyin:

Adım 1: Tarayıcı Önbelleğini ve Çerezleri Temizleyin

Eski önbelleğe alınmış veriler, tarayıcınızın eski, geçersiz bir sertifika yanıtına başvurmasına neden olabilir.

Chrome:

  1. Ctrl + Shift + Delete (Windows/Linux) veya Cmd + Shift + Delete (Mac) tuşlarına basın
  2. Zaman aralığını Tüm zamanlar olarak ayarlayın
  3. Önbelleğe alınmış resimler ve dosyalar ile Çerezler ve diğer site verileri seçeneğini işaretleyin
  4. Verileri temizle‘ye tıklayın

Firefox:

  1. Ayarlar → Gizlilik ve Güvenlik → Çerezler ve Site Verileri‘ne gidin
  2. Verileri Temizle‘ye tıklayın

Temizledikten sonra tarayıcıyı kapatıp yeniden açın, ardından siteyi yeniden ziyaret edin.

Adım 2: Sistem Tarihi ve Saatini Doğrulayın

SSL sertifikası doğrulaması zamana duyarlıdır. Sistem saatiniz yanlışsa — hatta bir gün kadar — tarayıcı geçerli bir sertifikanın süresi dolmuş veya henüz etkin olmadığı sonucuna varabilir.

Windows:

  1. Görev çubuğundaki saate sağ tıklayın → Tarih/saat ayarla
  2. Saati otomatik olarak ayarla ve Saat dilimini otomatik olarak ayarla seçeneğini etkinleştirin

macOS:

  1. Sistem Ayarları → Genel → Tarih ve Saat‘e gidin
  2. Saati ve tarihi otomatik olarak ayarla seçeneğini etkinleştirin

Linux:

sudo timedatectl set-ntp true
timedatectl status

Adım 3: Tarayıcınızı Güncelleyin

Modern SSL/TLS sertifikaları, eski tarayıcı sürümlerinin desteklemediği algoritmalar ve uzantılar kullanır. Her zaman tarayıcınızın en son kararlı sürümünü çalıştırın.

  • Chrome: Menu → Yardım → Google Chrome Hakkında → Güncelle
  • Firefox: Menu → Yardım → Firefox Hakkında → Güncelle
  • Edge: Menu → Yardım ve geri bildirim → Microsoft Edge Hakkında → Güncelle

Adım 4: VPN veya Proxy’yi Geçici Olarak Devre Dışı Bırakın

VPN’ler ve proxy’ler HTTPS bağlantılarını kesebilir ve kendi sertifikalarını değiştirebilir, tarayıcı uyarılarını tetikleyebilir. Bunların hata kaynağı olup olmadığını belirlemek için geçici olarak devre dışı bırakın.

Adım 5: Antivirus HTTPS Taramasını Kontrol Edin

Bazı antivirus programları kendi sertifikalarını enjekte ederek SSL incelemesi gerçekleştirir. Antivirus kök sertifikası tarayıcınız tarafından güvenilmezse, bu SSL hatalarına neden olur. Antivirus ayarlarınızı kontrol edin ve gerekirse HTTPS taramasını devre dışı bırakın.

Web Sitesi Sahibi Olarak SSL Hatalarını Nasıl Düzeltilir

Kendi web siteniz SSL hataları atıyorsa, aşağıdaki adımlar bunları sistematik olarak tanılamanıza ve çözmenize yardımcı olacaktır.

Düzeltme 1: Süresi Dolmuş SSL Sertifikasını Yenileyin

Certbot ile Let’s Encrypt kullanarak:

Önce mevcut sertifikanızın son kullanma tarihini kontrol edin:

sudo certbot certificates

Certbot tarafından yönetilen tüm sertifikaları yenilemek için:

sudo certbot renew

Sertifika son kullanma tarihine yakın olmasa bile yenilemeyi zorlamak için:

sudo certbot renew --force-renewal

Yenilemeden sonra, yeni sertifikayı uygulamak için web sunucunuzu yeniden yükleyin:

# For Nginx
sudo systemctl reload nginx

# For Apache
sudo systemctl reload apache2

Cron işiyle yenilemeyi otomatikleştirin:

sudo crontab -e

Günde iki kez yenileme kontrolü yapmak için aşağıdaki satırı ekleyin (Let’s Encrypt tarafından önerilir):

0 0,12 * * * certbot renew --quiet --post-hook "systemctl reload nginx"

> Pro ipucu: AlexHost VPS Barındırma ile barındırıyorsanız, Certbot doğrudan Linux VPS’inize kurulabilir ve yapılandırılabilir, sertifika yönetimi ve otomatik yenilemeler üzerinde tam kontrol sağlar.

Düzeltme 2: NET::ERR_CERT_COMMON_NAME_INVALID Çözün

Bu hata, sertifikanızın sitenizin kullandığı tam alan adı(ları) kapsamasını doğrulamayı gerektirir.

Sertifikanızın hangi alanları kapsadığını kontrol edin:

sudo certbot certificates

Veya sertifikayı doğrudan inceleyin:

openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -text | grep -A2 "Subject Alternative Name"

Sertifika hem example.com hem de www.example.com kapsamazsa, her ikisini de içerecek şekilde yeniden yayınlayın:

sudo certbot --nginx -d example.com -d www.example.com

Veya Apache ile:

sudo certbot --apache -d example.com -d www.example.com

Sanal ana bilgisayar yapılandırmasını kontrol edin (Nginx):

server {
    listen 443 ssl;
    server_name example.com www.example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}

server_name sertifikadaki alanlarla tam olarak eşleştiğinden emin olun.

Düzeltme 3: Karışık İçerik Hatalarını Düzeltin

Karışık içerik, bir siteyi HTTP’den HTTPS’ye geçirdikten sonra en yaygın sorunlardan biridir.

Adım 1: Karışık içeriği tanımlayın

Tarayıcınızın Geliştirici Araçlarını açın (F12) → Konsol sekmesi. Karışık içerik uyarıları şu şekilde görünür:

Mixed Content: The page at 'https://example.com' was loaded over HTTPS, 
but requested an insecure resource 'http://example.com/image.jpg'.

Adım 2: Veritabanınızda sabit kodlanmış HTTP bağlantılarını güncelleyin (WordPress örneği)

WP-CLI aracını veya “Better Search Replace” gibi bir eklentiyi kullanarak tüm HTTP başvurularını güncelleyin:

wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid

Adım 3: Nginx’e HTTPS yükseltme başlığı ekleyin

add_header Content-Security-Policy "upgrade-insecure-requests;";

Veya Apache’nin .htaccess dosyasında:

Header always set Content-Security-Policy "upgrade-insecure-requests;"

Adım 4: HTTPS yönlendirmelerini zorla

Nginx’te:

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

Apache .htaccess dosyasında:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Düzeltme 4: Sertifika Zinciri Sorunlarını Çözün (ERR_CERT_AUTHORITY_INVALID)

Eksik bir sertifika zinciri, özellikle ara sertifika eksik olduğunda bu hatanın sık nedenidir.

OpenSSL ile zinciri doğrulayın:

openssl s_client -connect yourdomain.com:443 -showcerts

Tam zinciri arayın: alan adı sertifikanız → ara CA → kök CA.

Nginx’te Düzeltmefullchain.pem kullandığınızdan emin olun (sadece cert.pem değil):

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

Apache’de Düzeltme:

SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

Tam sertifika zincirinin doğru şekilde sunulduğunu doğrulamak için SSL Labs Server Test’i kullanın.

Düzeltme 5: TLS Protokol Yapılandırmasını Güncelleyin

Eski protokolleri devre dışı bırakın ve sunucunuzda TLS 1.2 ve TLS 1.3’ü zorunlu kılın.

Nginx — önerilen TLS yapılandırması:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;

Apache — önerilen TLS yapılandırması:

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off

Değişiklik yaptıktan sonra web sunucusunu yeniden yükleyin.

Düzeltme 6: HTTP Strict Transport Security (HSTS) Etkinleştirin

HSTS, tarayıcılara alan adınız için her zaman HTTPS kullanmasını söyler, protokol düşürme saldırılarını ve karışık içerik sorunlarını önler.

Nginx:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Apache:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

> Uyarı: Tüm sitenizin HTTPS üzerinde çalıştığından emin olduktan sonra preload ile HSTS’yi etkinleştirin. Bu yönerge tersine çevrilmesi çok zordur.

SSL Sertifika Türleri: Doğru Olanı Seçmek

Tüm SSL sertifikaları eşit değildir. Kullanım durumunuz için doğru türü seçmek, birçok yaygın hatanın başlangıçta oluşmasını önler.

Sertifika TürüEn İyi KullanımKapsam
Alan Adı Doğrulaması (DV)Bloglar, kişisel sitelerTek alan adı veya joker
Kuruluş Doğrulaması (OV)İşletme web siteleriTek alan adı veya joker
Genişletilmiş Doğrulama (EV)E-ticaret, bankacılıkTek alan adı
Joker SSLAlt alanlara sahip siteler*.example.com
Çok Alan Adlı (SAN)Birden fazla alan adı100+ alana kadar
Let’s Encrypt (Ücretsiz DV)Herhangi bir web sitesiTek alan adı veya joker

Profesyonel web siteleri ve çevrimiçi mağazalar için, güvenilir, ticari olarak verilen bir sertifikaya yatırım yapmak ek bir güvenilirlik katmanı ekler. AlexHost, temel DV sertifikalarından gelişmiş çok alan adlı seçeneklere kadar her tür web sitesi için SSL S

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın