EMZETT.
Giriş yap

Karma içerik: HTTPS sayfalarında HTTP içeriği

Kısaca: HTTPS ile yüklenen bir sayfa şifresiz HTTP üzerinden kaynaklar içerir; tarayıcılar bunu engeller veya uyarır.

Biraz daha ayrıntılı: Mesaj: Mixed Content: The page at 'https://…' was loaded over HTTPS, but requested an insecure resource 'http://…'. This request has been blocked. Sayfanın kendisi şifreli olsa bile bir saldırgan şifresiz görselleri, betikleri veya stilleri okuyabilir veya değiştirebilir.

Ayrıntılı

Türler

  • Etkin karma içerik (betikler, stil sayfaları, iframe’ler, fetch/XHR): tüm sayfayı tehlikeye atabileceği için tarayıcılar tarafından engellenir.
  • Pasif karma içerik (görseller, ses, video): eskiden yalnızca uyarıyla yüklenirdi; modern tarayıcılar bunu otomatik olarak HTTPS’e yükseltir veya engeller.
  • Asma kilit simgesi kaybolur veya bir uyarı gösterir.

Nedenler

  • HTML, CSS, JavaScript veya veritabanında (eski HTTP döneminden içerik) sabit kodlanmış http:// adresleri.
  • HTTP kullanan üçüncü taraf betikleri veya gömülü medya.
  • Yapılandırmada hâlâ http:// içeren API URL’leri.
  • Sayfayı tarayıcıya HTTP olarak ileten ya da yanlış X-Forwarded-Proto başlıkları ayarlayan bir proxy veya CDN; bu yüzden uygulamanın kendisi http:// bağlantıları üretir.

Çözümler

  1. Geliştirici araçlarında (F12 → Konsol) etkilenen URL’leri oku.
  2. HTTPS’e geç veya göreli adresler kullan (/image.png).
  3. Depolanan içeriği (CMS, veritabanı) değiştir (http://domain → https://domain).
  4. HTTPS’i desteklemiyorlarsa üçüncü tarafları değiştir.
  5. Sunucuyu, HTTP→HTTPS yönlendirmesi ve HSTS etkin olacak şekilde yapılandır; proxy başlıklarını doğru ayarla.
  6. Content-Security-Policy upgrade-insecure-requests, tarayıcıya HTTP kaynaklarını otomatik olarak HTTPS’e yükseltmesini söyler (yalnızca geçici çözüm; kaynağı düzeltmek daha iyi).

Ayrıca bak: HTTPS, Güvenlik başlıkları, Let’s Encrypt, ERR_CERT_DATE_INVALID