Kısaca: HTTPS'e geçiş üç işten oluşur: geçerli bir sertifika, http adreslerinden https'e kalıcı (301) yönlendirme ve sayfadaki bütün kaynakların https ile yüklenmesi. Sertifika doğru kurulu olduğu hâlde tarayıcı "güvenli değil" diyorsa neden çoğunlukla sayfada http:// ile çağrılan görsel, betik ya da stil dosyalarıdır (karışık içerik).
www adının sertifikalı olduğunu görün; https://alanadiniz.com ve https://www.alanadiniz.com adreslerini ayrı ayrı açıp deneyin (bkz. ücretsiz SSL).Sayfa https ile açıldığı hâlde içindeki bir kaynak http:// ile çağrılıyorsa buna karışık içerik (mixed content) denir. Chrome veya Edge'de sayfayı açıp F12 tuşuna basın (Mac'te Cmd + Option + I) ve Konsol (Console) sekmesine bakın. Sorunlu her kaynak için şuna benzer bir uyarı görürsünüz:
Mixed Content: The page at 'https://alanadiniz.com/' was loaded over HTTPS,
but requested an insecure script 'http://alanadiniz.com/js/slider.js'.
This request has been blocked; the content must be served over HTTPS.
Uyarıdaki adres, düzeltmeniz gereken kaynağı gösterir. Sayfa kaynağını Ctrl + U ile açıp Ctrl + F ile http:// araması yapmak da işe yarar. Başka sitelere verilen normal bağlantılar (<a href>) karışık içerik sayılmaz; sorun sayfanın yüklediği kaynaklardadır.
| Kaynak türü | Tarayıcının davranışı | Belirti |
|---|---|---|
| Görsel, ses, video | Güncel tarayıcılar https ile yüklemeyi dener. | Kaynak https'te yoksa görsel kırık görünür. |
| Betik, stil dosyası, iframe, yazı tipi | Engellenir. | Menü, slayt, form ya da sayfa düzeni bozulur. |
Form (action="http://…") | Gönderim sırasında uyarı gösterilir. | Ziyaretçi "güvenli olmayan form" uyarısı görür. |
Kaynak sizin sitenize aitse adresi https ile değiştirin. Başka bir siteden geliyorsa ve o site https desteklemiyorsa kaynağı kaldırın ya da kendi sunucunuza alın. Tema dosyalarına ve CSS içindeki url(…) ifadelerine elle yazılmış adresleri de unutmayın.
İçerik sistemleri yazı ve görsel adreslerini veritabanında tam adresle saklar. Bu adresleri değiştirmeden önce mutlaka yedek alın (cPanel'de Yedekleme (Backup) ya da phpMyAdmin'den dışa aktarma).
Hesabınızda SSH ya da cPanel Terminal erişimi ve WP-CLI varsa, WordPress klasörünüzde şu komutları çalıştırın. İlk arama-değiştirme --dry-run ile yalnız kaç kayıt değişeceğini gösterir, hiçbir şeyi değiştirmez:
cd ~/public_html
wp db export yedek-https-oncesi.sql
wp search-replace 'http://alanadiniz.com' 'https://alanadiniz.com' --all-tables-with-prefix --skip-columns=guid --dry-run
wp search-replace 'http://alanadiniz.com' 'https://alanadiniz.com' --all-tables-with-prefix --skip-columns=guid
Siteniz eskiden www ile açılıyorsa aynı işlemi http://www.alanadiniz.com için de yapın. WP-CLI kullanamıyorsanız aynı işi veritabanı arama-değiştirme eklentileriyle (ör. Better Search Replace) yapabilirsiniz: önce deneme modunda çalıştırın, işiniz bitince eklentiyi kaldırın.
Önemli: WordPress tablolarında phpMyAdmin'den düz SQL REPLACE ile değiştirme yapmayın. Tema ayarları ve bileşenler "serileştirilmiş" veri olarak saklanır; adresin uzunluğu değişince bu veriler bozulur ve ayarlar kaybolur. WP-CLI ve arama-değiştirme eklentileri bu verileri doğru şekilde günceller.
Bütün adresleri düzeltene kadar tarayıcıdan sayfadaki http kaynaklarını https olarak istemesini isteyebilirsiniz. Bu satır yalnız kaynağın https sürümü varsa işe yarar; kalıcı çözüm değildir:
<IfModule mod_headers.c>
Header always set Content-Security-Policy "upgrade-insecure-requests"
</IfModule>
HSTS (HTTP Strict Transport Security) başlığı, tarayıcıya sitenize belirli bir süre boyunca yalnız HTTPS ile bağlanmasını söyler. Bu süre içinde sertifikada bir sorun çıkarsa ziyaretçiler uyarıyı geçip siteye giremez; başlığı kaldırsanız bile daha önce siteyi ziyaret etmiş tarayıcılar süre dolana kadar kuralı uygular.
Bu yüzden HSTS'yi, HTTPS birkaç hafta sorunsuz çalıştıktan sonra ve kısa bir süreyle açın; her şey yolundaysa süreyi kademeli artırın (ör. 300 saniye → 1 hafta → 1 yıl, yani 31536000):
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=300"
</IfModule>
includeSubDomains eklemeden önce bütün alt alan adlarınızın (ör. mail, panel, test) geçerli sertifikası olduğundan emin olun. Tarayıcıların önceden yüklenen listesine girmenizi sağlayan preload seçeneğinden geri dönmek aylar sürebilir; gerçekten gerekmedikçe kullanmayın.
Destek ekibimiz yardımcı olsun; taleplere en geç 24 saat içinde ilk yanıt veriyoruz.
Destek talebi oluşturun