SSL sertifikası kurulu olmasına rağmen tarayıcı adres çubuğunda site güvenli görünmeyebilir veya bazı sayfalarda güvenlik uyarısı çıkabilir. Bunun yaygın nedenlerinden biri HTTPS ile açılan sayfanın görsel, CSS, JavaScript, font veya iframe gibi bazı kaynakları hâlâ HTTP üzerinden çağırmasıdır. Bu durum Mixed Content olarak adlandırılır.
Bu rehberde SSL çalıştığı halde Mixed Content uyarısı veren bir sitede güvensiz kaynağı nasıl bulacağınızı ve problemi kalıcı şekilde nasıl düzelteceğinizi adım adım inceleyeceğiz.
Önce SSL sertifikasının gerçekten çalıştığını doğrulayın
Şu adresi doğrudan açın:
https://site.com
Site HTTPS üzerinden hiç açılmıyorsa önce SSL sertifikasının kendisini kontrol etmeniz gerekir.
Mixed Content problemi genellikle HTTPS sayfası açıldığı halde sayfa içerisindeki bazı kaynakların HTTP kullanmasıdır.
1. Mixed Content nedir?
Sayfanız:
https://site.com
üzerinden açılır.
Ancak HTML içerisinde örneğin:
http://site.com/gorsel.webp
çağrısı bulunur.
HTTPS sayfanın HTTP kaynağı çağırması Mixed Content oluşturabilir.
2. Sorun yalnızca görsellerden kaynaklanmaz
HTTP üzerinden çağrılan şu kaynaklar problem oluşturabilir:
- Görseller
- CSS dosyaları
- JavaScript
- Fontlar
- iframe
- Video kaynakları
- Harici widget’lar
- Bazı API çağrıları
3. Tarayıcı geliştirici araçlarını açın
Chrome veya benzeri bir tarayıcıda sorunlu sayfayı açın.
Klavyeden:
F12
tuşuna basın.
Ardından:
Console
sekmesini açın.
Mixed Content problemi varsa tarayıcı çoğu zaman HTTP üzerinden çağrılan URL’yi burada gösterir.
4. Network sekmesini kontrol edin
Developer Tools içerisinde:
Network
sekmesini açın.
Sayfayı yenileyin.
İstekler arasında:
http://
ile başlayan kaynakları arayın.
Amaç hangi dosyanın hâlâ HTTP üzerinden çağrıldığını bulmaktır.
5. Sayfa kaynağında HTTP URL’lerini arayın
Sayfa kaynağında:
http://
ifadesini arayın.
Özellikle:
src=
href=
url()
içerisinde kullanılan URL’leri kontrol edin.
Düz metin olarak yazılmış bir HTTP adresi her zaman Mixed Content oluşturmaz.
6. WordPress site adreslerini kontrol edin
WordPress kullanıyorsanız:
Ayarlar → Genel
alanını açın.
Şunların HTTPS kullandığını kontrol edin:
WordPress Adresi
Site Adresi
Örneğin:
http://site.com
yerine:
https://site.com
kullanılmalıdır.
7. Eski içeriklerde HTTP kayıtları kalmış olabilir
Site daha önce HTTP ile çalıştıysa içeriklerde şu tür eski URL’ler bulunabilir:
http://site.com/wp-content/uploads/resim.webp
SSL sertifikası kurmak veritabanındaki bütün eski URL’leri her zaman otomatik değiştirmez.
8. Veritabanında yedeksiz toplu değiştirme yapmayın
Şu değişikliği doğrudan ve yedeksiz uygulamayın:
http://site.com
→
https://site.com
Özellikle WordPress veritabanında özel veri biçimleri bulunabilir.
Toplu değiştirme öncesinde:
- Veritabanı yedeği alın
- WordPress uyumlu araç kullanın
- Mümkünse önce test çalıştırın
- Domaini doğru yazdığınızdan emin olun
9. Tema dosyalarını kontrol edin
Tema içerisinde sabit olarak yazılmış HTTP URL’si olabilir.
Örneğin:
background-image: url('http://site.com/bg.webp');
Tema dosyalarında ve tema seçeneklerinde:
http://
araması yapın.
10. CSS içerisindeki fontları kontrol edin
Sayfada hiçbir HTTP görsel göremediğiniz halde Mixed Content devam ediyorsa font dosyalarını inceleyin.
Örneğin:
@font-face {
src: url('http://site.com/fonts/font.woff2');
}
güvensiz kaynak oluşturabilir.
11. Harici servisleri kontrol edin
Site şu tür harici kaynaklar kullanabilir:
- Harita
- Video
- Canlı destek
- Rezervasyon
- Sayaç
- Harici font
Bu servislerden birinin URL’si HTTP olabilir.
Varsa HTTPS sürümünü kullanın.
12. iframe kodlarını kontrol edin
Örneğin:
<iframe src="http://example.com/widget"></iframe>
HTTPS sayfada Mixed Content oluşturabilir.
iframe kaynağının HTTPS destekleyip desteklemediğini kontrol edin.
13. CDN adreslerini kontrol edin
Ana site:
https://site.com
üzerinden açılıyor olabilir.
Ancak statik dosyalar:
http://cdn.site.com
üzerinden yükleniyorsa problem devam eder.
CDN domaininin de HTTPS desteklediğinden emin olun.
14. Cache temizliği yapın
HTTP URL’sini düzelttikten sonra eski içerik cache’den gelmeye devam edebilir.
Şunları temizleyin:
- Site cache
- WordPress cache
- Sunucu cache
- CDN cache
- Tarayıcı cache
Ardından gizli sekmede tekrar test edin.
15. HTTP’den HTTPS’ye yönlendirme yeterli olmayabilir
Şöyle bir yapı bulunabilir:
http://site.com/resim.webp
→
https://site.com/resim.webp
Ancak mümkün olduğunda sayfa kaynağında doğrudan:
https://site.com/resim.webp
kullanmak daha temizdir.
16. Ana domain yönlendirmesini kontrol edin
Şu adres:
http://site.com
HTTPS sürümüne yönlenmelidir.
Mümkün olduğunca gereksiz yönlendirme zincirlerinden kaçının.
17. Mixed Content ile sertifika hatasını karıştırmayın
Mixed Content:
Geçerli HTTPS sayfasının HTTP kaynak çağırmasıdır.
Ancak tarayıcı:
- Sertifikanın süresi dolmuş
- Sertifika domainle eşleşmiyor
- Sertifika güvenilir değil
diyorsa problem farklıdır.
18. DNS değişikliğinden sonra SSL farklı davranıyorsa
Domain yakın zamanda yeni sunucuya taşındıysa bazı DNS resolver’ları eski sunucu IP’sini kullanıyor olabilir.
Eski ve yeni sunucuda farklı SSL yapılandırmaları varsa kullanıcılarda farklı sonuçlar görülebilir.
Bu durumda DNS Değişikliği Ne Kadar Sürer? DNS Yayılımı Nasıl Kontrol Edilir? rehberini kullanabilirsiniz.
19. HTTPS dosyası 403 veriyorsa
Kaynak URL’si doğru şekilde:
https://site.com/style.css
olabilir.
Ancak sunucu bu dosyaya:
403 Forbidden
döndürüyor olabilir.
Bu durumda problem Mixed Content değil erişim iznidir.
403 Forbidden Hatası Nedir? cPanel’de Nasıl Çözülür? rehberindeki kontrolleri uygulayın.
Mixed Content hızlı kontrol sırası
- HTTPS adresi çalışıyor mu?
- Console hangi HTTP URL’sini gösteriyor?
- Network bölümünde HTTP kaynak var mı?
- WordPress adresleri HTTPS mi?
- Eski içeriklerde HTTP URL’si var mı?
- Tema ve CSS dosyaları kontrol edildi mi?
- Font ve iframe kaynakları HTTPS mi?
- CDN HTTPS kullanıyor mu?
- Cache temizlendi mi?
- HTTP ana domain HTTPS’ye yönleniyor mu?
Sonuç
Mixed Content çözümünde doğru sıra:
Console → problemli URL → kaynağın bulunduğu yer → HTTPS düzeltmesi → cache temizliği → yeniden test
şeklindedir.
SSL sertifikasının kurulu olması tek başına bütün kaynakların güvenli şekilde yüklendiğini garanti etmez.
Hangi dosyanın HTTP üzerinden çağrıldığını tek tek tespit edip kaynağında HTTPS olarak düzeltmek en temiz çözümdür.