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-Protobaşlıkları ayarlayan bir proxy veya CDN; bu yüzden uygulamanın kendisihttp://bağlantıları üretir.
Çözümler
- Geliştirici araçlarında (F12 → Konsol) etkilenen URL’leri oku.
- HTTPS’e geç veya göreli adresler kullan (
/image.png). - Depolanan içeriği (CMS, veritabanı) değiştir (
http://domain→https://domain). - HTTPS’i desteklemiyorlarsa üçüncü tarafları değiştir.
- Sunucuyu, HTTP→HTTPS yönlendirmesi ve HSTS etkin olacak şekilde yapılandır; proxy başlıklarını doğru ayarla.
- 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