Wordpress SSL ve Karışık İçerik (Mixed Content) Sorunu, sitenizin güvenliğini tehlikeye atabilir; bu rehberde nedeni, çözüm adımları ve ipuçları bulacaksınız.
GİRİŞ
Web sitelerinin güvenliği, arama motoru sıralamaları ve kullanıcı deneyimi açısından kritik bir faktördür. Wordpress SSL ve Karışık İçerik (Mixed Content) Sorunu, sitenizin HTTPS üzerinden tam olarak hizmet vermesini engelleyerek hem güvenlik açıkları yaratır hem de SEO performansını düşürür. Bu sorun, tarayıcıların güvenli olmayan kaynakları (http) engellemesiyle sayfa öğelerinin eksik ya da bozuk görünmesine yol açar. Aşağıdaki rehber, sorunun teknik kökenini, çözüm adımlarını ve uzun vadeli en iyi uygulamaları detaylı bir şekilde ele alır.
Uzman İpucu:SSL sertifikanızı yenilediğinizde, WordPress adresi ve Site adresi ayarlarını https olarak güncellemeyi unutmayın; aksi takdirde karışık içerik hataları otomatik olarak ortaya çıkar.
TEKNİK ALTYAPI VE YAPILANDIRMA
WordPress, PHP tabanlı bir içerik yönetim sistemidir ve sunucu seviyesinde TLS (Transport Layer Security) protokolü ile şifrelenmiş bağlantılar üzerinden çalışır. Karışık içerik sorunu iki temel nedenden kaynaklanır:
HTTPS yönlendirmesinin eksik olması– HTTP istekleri doğrudan siteye ulaşır ve tarayıcı güvenli olmayan kaynakları engeller.
Veritabanı ve tema/eklenti dosyalarında sabit HTTP URL’lerinin bulunması – Bu URL’ler, sayfa yüklendiğinde hâlâ http protokolünü kullanır.
Aşağıda, bu iki sorunu ortadan kaldırmak için gerekli temel yapılandırmalar yer almaktadır.
# .htaccess ile Zorunlu HTTPS Yönlendirmesi
.htaccess dosyasına ekleyin
RewriteEngine On RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP: X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Bu kod, tüm gelen HTTP isteklerini kalıcı (301) bir yönlendirme ile HTTPS’e taşır.
# wp-config.php Dosyasında SSL Zorlaması
<?php
// wp-config.php dosyasının en üst kısmına ekleyin
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'http') {
$_SERVER['HTTPS'] = 'on';
}
Bu satır, özellikle ters proxy (reverse proxy) kullanan sunucularda HTTPS algılamasını garanti eder.
# WordPress Ayarları – Site URL’lerinin Güncellenmesi
WordPress yönetim panelinde Ayarlar > Genel bölümündenWordPress Adresi (URL)ve Site Adresi (URL)alanlarını https:// ile başlayacak şekilde değiştirin. Alternatif olarak, wp-config.php dosyasına aşağıdaki satırları ekleyebilirsiniz:
define('WP_HOME','https://example.com');
define('WP_SITEURL','https://example.com');
# Veritabanındaki HTTP Bağlantılarını Düzeltme
WP-CLI kullanarak tüm tablo ve satırlarda http://example.com adresini https://example.com ile değiştirin
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid
Bu komut, içerik, meta ve ayar tablolarındaki eski HTTP linklerini toplu olarak günceller.
BİLEŞEN VE DEĞERLENDİRME TABLOSU
| Bileşen | İşlev | Önem Derecesi | Etki |
|---|---|---|---|
| HTTPS Yönlendirme (.htaccess) | Tüm HTTP isteklerini HTTPS’e yönlendirir | Karışık içerik hatalarını %100 önler | |
| Content Security Policy (CSP) | Tarayıcıya hangi kaynakların güvenli olduğunu bildirir | Güvenlik duvarı görevi görür, XSS riskini azaltır | |
| Veritabanı URL Düzeltmesi | Eski http linklerini https ile değiştirir | İçerik bütünlüğü ve SEO puanı korunur | |
| SSL Sertifika Otomasyonu | Sertifika yenileme ve kurulumunu otomatikleştirir | Kesintisiz güvenlik ve bakım kolaylığı |
ADIM ADIM UYGULAMA VE İŞLEM ADIMLARI
# 1. SSL Sertifikasını Kurun
-Let’s Encrypt gibi ücretsiz bir CA (Certificate Authority) seçin.
- Sunucuya
certbotkurun ve aşağıdaki komutla sertifikayı alın:
sudo certbot --apache -d example.com -d www.example.com
# 2. HTTPS Yönlendirmesini Aktifleştirin
.htaccessdosyasına yukarıdaki RewriteRule satırlarını ekleyin.Değişiklikleri test etmek için tarayıcıda
http://example.comadresine gidin; otomatik olarakhttps://example.com’a yönlendirilmelidir.
# 3. WordPress URL’lerini Güncelleyin
Yönetim panelinden Genel Ayarlar kısmına girin ve URL’leri
https://ile başlayacak şekilde değiştirin.Alternatif olarak
wp-config.phpdosyasınaWP_HOMEveWP_SITEURLtanımlarını ekleyin.
# 4. Veritabanındaki HTTP Bağlantılarını Düzeltin
WP-CLI kurulu değilse, sunucuya yükleyin.
Aşağıdaki komutla tüm eski linkleri güncelleyin:
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid
# 5. Tema ve Eklenti Dosyalarında Sabit HTTP URL’lerini Temizleyin
functions.phpdosyasına aşağıdaki filtreyi ekleyin; dinamik olarak http linklerini https’e dönüştürür:
add_filter( 'script_loader_src', 'fix_mixed_content', 10, 2 );
add_filter( 'style_loader_src', 'fix_mixed_content', 10, 2 );
function fix_mixed_content( $src, $handle ) {
return str_replace( 'http://', 'https://', $src );
}
# 6. Content Security Policy (CSP) Ekleyin
- Apache yapılandırmasına aşağıdaki satırı ekleyin:
Header set Content-Security-Policy "default-src https: 'self'; script-src https: 'self' 'unsafe-inline'; style-src https: 'self' 'unsafe-inline'; img-src https: data: 'self';"
Bu politika, sadece güvenli (HTTPS) kaynakların yüklenmesine izin verir.
# 7. Tarayıcı Konsolunu Kontrol Edin
Chrome DevTools →Console sekmesinde “Mixed Content” uyarılarını arayın.
Herhangi bir uyarı kalmadıysa, sorun çözülmüş demektir.
GELECEĞE YÖNELİK EN İYİ UYGULAMALAR (BEST PRACTICES)
-Sertifika Yenileme Otomasyonu:certbot renew --dry-run komutunu cron ile haftalık çalıştırarak sertifikanın otomatik yenilenmesini sağlayın.
-HTTPS Zorlamasını Tema Düzeyinde Tekrarlamayın:functions.php içinde eklediğiniz filtreleri, sadece gerekli olduğunda devre dışı bırakın; aksi takdirde performans kaybı yaşanabilir.
-CDN Kullanıyorsanız HTTP/HTTPS Çakışmalarına Dikkat:CDN ayarlarında “Force HTTPS” seçeneğini aktif edin.
-Güncel WordPress ve Eklenti Sürümleri:Eski sürümler, HTTP referanslarını içerik içinde tutabilir; düzenli güncellemeler karışık içerik riskini azaltır.
Önemli Güvenlik Uyarısı:SSL sertifikanızı geçersiz kılan bir hata (örneğin, yanlış .htaccess yönlendirmesi) sitenizin tamamen erişilemez hâle gelmesine neden olabilir. Değişiklik yapmadan önce .htaccess ve wp-config.php dosyalarının yedeklerini alın.
SIKÇA SORULAN SORULAR
# Karışık içerik hatası neden hâlâ görülüyor?
Karışık içerik hatası, yalnızca yönlendirme ve URL ayarları değil, aynı zamanda tema, eklenti ve veritabanındaki sabit HTTP linklerinden de kaynaklanabilir. Tüm bu bileşenleri kontrol edip güncellediğinizde sorun ortadan kalkar.
# Let’s Encrypt sertifikası ücretsiz mi ve ne kadar sürede yenilenir?
Evet, Let’s Encrypt ücretsiz bir sertifika otoritesidir. Sertifikalar 90 gün geçerlidir ve certbot renew komutuyla otomatik olarak yenilenebilir; bu yüzden otomasyon kritik bir adımdır.
# CSP (Content Security Policy) eklemek performansı yavaşlatır mı?
Doğru yapılandırılmış bir CSP, sadece güvenli kaynakların yüklenmesine izin verir ve tarayıcıların gereksiz istekleri engellemesi sayesinde sayfa yükleme süresini kısaltabilir. Yanlış bir politika ise bazı kaynakların engellenmesine ve hatalara yol açabilir; bu yüzden test ortamında detaylı kontrol yapılmalıdır.
SONUÇ VE KONTROL LİSTESİ
-SSL Sertifikası kuruldu ve otomatik yenileme ayarlandı.
-.htaccess dosyasıyla zorunlu HTTPS yönlendirmesi aktif.
-WordPress adresi ve Site adresihttps:// ile güncellendi.
-Veritabanındaki tüm http:// linkleri https:// ile değiştirildi.
-Tema ve eklenti dosyalarında sabit HTTP referansları temizlendi.
-Content Security Policy başlığı eklendi ve test edildi.
-Tarayıcı konsolu üzerinden karışık içerik uyarıları kontrol edildi.
Bu adımları eksiksiz uyguladığınızda,Wordpress SSL ve Karışık İçerik (Mixed Content) Sorunu tamamen ortadan kalkar, siteniz güvenli bir HTTPS ortamında sorunsuz çalışır ve SEO puanınız da artar. Düzenli bakım ve otomasyon, uzun vadeli başarı için vazgeçilmezdir.
Sıkça Sorulan Sorular
# Wordpress SSL ve Karışık İçerik (Mixed Content) Sorunu neden önemlidir?
Doğru uygulandığında web sitenizin kullanıcı deneyimini, SEO performansını ve yüklenme hızlarını ciddi oranda iyileştirerek genel site kalitesini artırır.
# Wordpress SSL ve Karışık İçerik (Mixed Content) Sorunu işlemi ne kadar sürede tamamlanır?
Sitenizin karmaşıklığına ve sayfa sayısına bağlı olarak, temel yapılandırma adımları 1 ila 2 saat içinde tamamlanabilmektedir.
# Bu işlem için eklenti kullanmak zorunlu mudur?
Hayır, birçok optimizasyon ve ayar manuel kod düzenlemeleriyle yapılabilir; ancak yönetimi kolaylaştırmak adına güvenilir eklentiler tercih edilebilir.
Wordpress Virüs Temizleme
• YöneticiTürkiye'nin en iyi WordPress virüs temizleme hizmetini sizlere vererek, bulaşan tüm zararlı kodları veritabanınız bozulmadan temizliyor ve sitenizi hem güvenli hem de eski performansına kavuşturuyoruz.
WordPress Sitenizde Güvenlik Tehdidi mi Var?
Siber güvenlik mühendislerimiz 2 saat içinde sitenizi derinlemesine tarayıp tüm zararlı yazılımları temizlesin.