Ekran Kartlı Sunucu Satışları Başladı. İncele
Hosting, Domain ve Web

SSL Sertifikası Kurulumu ve HTTPS’e Geçiş

Ücretsiz Let’s Encrypt ve ücretli SSL kurulumu, cPanel AutoSSL, karma içerik hatası ve HTTP’den HTTPS’e kalıcı yönlendirme.

  • 8 dk okuma
  • Güncelleme:
  • Yayın:
  • Batihost Teknik Ekibi

Kısaca Özet

  • SSL sertifikası kurulumu üç adımdır: sertifikayı almak (Let’s Encrypt ücretsizdir), sunucuya yüklemek, sonra tüm HTTP trafiğini 301 ile HTTPS’e yönlendirmek.
  • Paylaşımlı hostingte iş cPanel’deki AutoSSL ile tek tıkla biter. Kendi sunucunuzda Certbot kullanılır ve sertifika 90 günde bir otomatik yenilenir.
  • Kurulum bitince adres çubuğunda hâlâ uyarı çıkıyorsa sorun sertifika değil karma içeriktir: sayfadaki bir görsel ya da betik hâlâ http:// ile çağrılıyordur.
  • Sertifikanın türü (DV, OV, EV) şifreleme gücünü değiştirmez; yalnızca kimlik doğrulama seviyesini değiştirir. Standart bir site için DV yeterlidir.

SSL sertifikası kurulumu, sitenizle ziyaretçi arasındaki trafiği şifreleyerek adres çubuğunda kilit simgesinin çıkmasını sağlar. İşlem üç adımdan oluşur: sertifikayı temin etmek, sunucuya yüklemek ve tüm HTTP isteklerini kalıcı olarak HTTPS’e yönlendirmek. Paylaşımlı hostingte cPanel’in AutoSSL özelliğiyle tek tıkla, kendi sunucunuzda Certbot ile tek komutla halledilir.

Bu rehberde ücretsiz Let’s Encrypt sertifikasının kurulumunu, ücretli sertifika satın aldıysanız CSR üretip yükleme adımlarını, Nginx ve Apache yapılandırmalarını, en sık karşılaşılan karma içerik sorununu ve sertifika yenileme hatalarının çözümünü bulacaksınız.

SSL, TLS ve HTTPS Arasındaki Fark#

Günlük konuşmada hepsine “SSL” denir ama teknik olarak durum şudur: SSL protokolünün tüm sürümleri (2.0, 3.0) güvenlik açıkları nedeniyle terk edilmiştir. Bugün gerçekte kullanılan protokolün adı TLS’tir. HTTPS ise, HTTP protokolünün TLS üzerinden taşınmış halidir.

ProtokolDurumAçıklama
SSL 2.0 / 3.0KapatınPOODLE ve benzeri açıklar; hiçbir tarayıcı desteklemiyor
TLS 1.0 / 1.1Kapatın2020’den beri tarayıcılarda devre dışı
TLS 1.2Açık kalsınEski istemciler için hâlâ gerekli
TLS 1.3ÖncelikliDaha hızlı el sıkışma, daha az tur, zayıf şifre paketleri elenmiş
TLS protokol sürümleri ve önerilen durumları

Sunucu yapılandırmanızda yalnızca TLS 1.2 ve 1.3 açık olmalıdır. Eski protokolleri açık bırakmak PCI-DSS gibi uyumluluk denetimlerinde de sorun çıkarır.

Sertifika Türleri: DV, OV, EV ve Wildcard#

Sertifikaları birbirinden ayıran şey şifreleme gücü değil, sertifika otoritesinin sizi ne kadar doğruladığıdır.

DV (Domain Validation)
Yalnızca alan adının sizin kontrolünüzde olduğu doğrulanır. Dakikalar içinde verilir. Let’s Encrypt bu türdendir. Blog, kurumsal tanıtım sitesi ve çoğu e-ticaret sitesi için yeterlidir.
OV (Organization Validation)
Şirketin ticari kaydı da doğrulanır, sertifika detayında firma adı görünür. Kurumsal siteler ve bankacılık dışı finansal hizmetler tercih eder. Birkaç iş günü sürer.
EV (Extended Validation)
En kapsamlı doğrulama. Tarayıcılar artık yeşil adres çubuğu göstermediği için görsel avantajı büyük ölçüde kalmadı; ağırlıklı olarak uyumluluk gereği alınır.
Wildcard
*.alanadi.com biçiminde tüm birinci seviye alt alan adlarını kapsar. a.b.alanadi.com gibi iki seviyeli adları kapsamaz.
Multi-Domain (SAN/UCC)
Tek sertifikada birbirinden farklı alan adları taşır. Birden çok siteyi aynı sunucuda barındıranlar için pratiktir.
Bilgi“Ücretli sertifika daha güçlü şifreler” yaygın bir yanlış bilgidir. DV bir Let’s Encrypt sertifikasıyla pahalı bir EV sertifikası, aynı TLS 1.3 protokolünü ve aynı anahtar uzunluklarını kullanır. Fark yalnızca kimlik doğrulama ve sigorta tarafındadır.

Yöntem 1: cPanel’de AutoSSL ile Kurulum#

Paylaşımlı hosting kullanıyorsanız bu en kısa yoldur. AutoSSL, hesabınızdaki tüm alan ve alt alan adlarına otomatik sertifika verir ve süresi dolmadan yeniler.

  1. Alan adının sunucuya yöneldiğini doğrulayın#

    AutoSSL, alan adının gerçekten bu sunucuya baktığını HTTP üzerinden kontrol eder. A kaydı başka bir IP’yi gösteriyorsa doğrulama başarısız olur. Kayıt yapısını DNS kayıtları rehberinden kontrol edebilirsiniz.

  2. SSL/TLS Status ekranını açın#

    cPanel ana ekranında “Security” bölümündeki SSL/TLS Status simgesine tıklayın. Alan adlarınız listelenir; sertifikasız olanların yanında kırmızı bir uyarı görürsünüz.

  3. Run AutoSSL düğmesine basın#

    Kapsamak istediğiniz alan adlarını işaretleyip Run AutoSSL düğmesine tıklayın. İşlem birkaç dakika sürer, sayfayı yenileyerek durumu izleyin.

  4. HTTPS’i test edin#

    Tarayıcıda https://alanadiniz.com adresini açın. Kilit simgesi çıkıyorsa sertifika tarafı bitmiştir; sırada yönlendirme var.

Panelin diğer bölümlerini de tanımak isterseniz cPanel kullanım rehberi sayfasına bakın.

Yöntem 2: Kendi Sunucunuzda Certbot ile Let’s Encrypt#

Kök erişiminiz olan bir VDS ya da dedicated sunucuda Certbot kullanılır. Certbot, sertifikayı alır, web sunucusu yapılandırmasını düzenler ve yenilemeyi zamanlar.

Kaynaklar ve araçlar
  • Certbot (resmî site)Ücretsiz LinuxPaket deposu / snap
  • Let’s Encrypt (sertifika otoritesi) Her platformÜcretsiz sertifika
  • PuTTY (Windows’tan SSH bağlantısı) Windows.exeÜcretsiz
    İndir

Sunucuya SSH ile bağlanmayı bilmiyorsanız önce SSH bağlantı rehberini okuyun.

Ubuntu / Debian + Nginx#

# Certbot ve Nginx eklentisini kur
sudo apt update
sudo apt install -y certbot python3-certbot-nginx

# Sertifikayı al ve Nginx yapılandırmasını otomatik düzenle
sudo certbot --nginx -d alanadiniz.com -d www.alanadiniz.com

# Otomatik yenilemeyi test et (gerçek sertifika almaz)
sudo certbot renew --dry-run

Apache kullanıyorsanız paket adı python3-certbot-apache, komut da sudo certbot --apache -d alanadiniz.com olur. AlmaLinux veya Rocky Linux’ta paket yöneticisi dnf’tir:

sudo dnf install -y epel-release
sudo dnf install -y certbot python3-certbot-nginx
sudo certbot --nginx -d alanadiniz.com -d www.alanadiniz.com
DikkatCertbot HTTP-01 doğrulaması için 80 portunun dışarıya açık olması gerekir. Güvenlik duvarında yalnızca 443’ü açtıysanız doğrulama başarısız olur. UFW kullanıyorsanız sudo ufw allow 'Nginx Full' komutu ikisini birden açar; ayrıntı için güvenlik duvarı yapılandırması sayfasına bakın.

Wildcard sertifika (DNS-01 doğrulaması)#

*.alanadiniz.com gibi bir wildcard sertifika istiyorsanız HTTP doğrulaması yetmez; DNS bölgenize bir TXT kaydı eklemeniz gerekir:

sudo certbot certonly --manual --preferred-challenges dns \
  -d alanadiniz.com -d "*.alanadiniz.com"

Certbot size _acme-challenge.alanadiniz.com adında bir TXT kaydı ve değeri verir. Bu kaydı DNS panelinize ekleyin, yayılmasını bekleyin ve Enter’a basın. Manuel yöntemde otomatik yenileme çalışmaz; her 90 günde bir işlemi tekrarlamanız ya da sağlayıcınızın DNS API eklentisini kullanmanız gerekir.

Nginx ve Apache Yapılandırması#

Certbot yapılandırmayı otomatik yazar ama elle düzenlemek isterseniz doğru bir Nginx sunucu bloğu şuna benzer:

server {
    listen 80;
    listen [::]:80;
    server_name alanadiniz.com www.alanadiniz.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;
    server_name alanadiniz.com www.alanadiniz.com;

    ssl_certificate     /etc/letsencrypt/live/alanadiniz.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/alanadiniz.com/privkey.pem;

    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers off;
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_stapling on;
    ssl_stapling_verify on;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    root /var/www/alanadiniz.com;
    index index.php index.html;
}

Apache tarafında aynı iş sanal konak dosyasında yapılır. Değişiklikten sonra yapılandırmayı test edip servisi yeniden yükleyin:

# Nginx
sudo nginx -t && sudo systemctl reload nginx

# Apache (Ubuntu/Debian)
sudo apache2ctl configtest && sudo systemctl reload apache2

# Sertifikanın son geçerlilik tarihini gör
sudo certbot certificates

HTTP’den HTTPS’e Kalıcı Yönlendirme#

Sertifika kurulduktan sonra site hem http:// hem https:// ile açılmaya devam eder. Arama motorları bunu iki ayrı sürüm olarak görür ve içerik tekrarı sayar. Çözüm 301 yönlendirmedir.

Apache veya LiteSpeed kullanan paylaşımlı hostingte .htaccess dosyasının en üstüne:

<IfModule mod_rewrite.c>
RewriteEngine On

# HTTP -> HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# www olmayan sürüme sabitle (tercihe bağlı)
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
</IfModule>
İpucuwww’lu ve www’suz sürümden birini seçip diğerini ona yönlendirin, ikisini birden canlı tutmayın. Hangisini seçtiğinizin SEO açısından önemi yoktur; tutarlı olmanın önemi vardır. Aynı kuralı Google Search Console’daki tercih ettiğiniz alan adıyla eşleştirin.

Karma İçerik (Mixed Content) Sorununu Çözme#

Sertifika kurulduğu halde kilit simgesi çıkmıyorsa suçlu neredeyse her zaman karma içeriktir. Sayfa HTTPS ile geliyor ama içindeki bir görsel, CSS, JavaScript veya iframe hâlâ http:// adresini çağırıyordur. Tarayıcı bunu güvenlik ihlali sayar ve kilidi kaldırır.

Tespit için tarayıcıda F12 ile geliştirici araçlarını açın ve Console sekmesindeki “Mixed Content” satırlarını okuyun; hangi dosyanın sorun çıkardığını doğrudan yazar.

WordPress kullanıyorsanız veritabanındaki eski adresleri toplu değiştirmek gerekir. Doğrudan SQL ile yapmak serileştirilmiş verileri bozabileceği için önce yedek alın:

# Önce yedek
mysqldump -u wp_user -p wp_site > /yedek/oncesi.sql

# WP-CLI ile güvenli toplu değiştirme (serileştirilmiş veriyi doğru işler)
wp search-replace 'http://alanadiniz.com' 'https://alanadiniz.com' --all-tables --precise

# Önbelleği temizle
wp cache flush

Kurulum sürecinin tamamını görmek isterseniz WordPress kurulumu sayfasındaki SSL bölümü bu adımı tamamlar.

HSTS ve Ek Güvenlik Başlıkları#

HSTS (HTTP Strict Transport Security), tarayıcıya “bu siteye bir daha asla HTTP ile bağlanma” demenizi sağlar. Yönlendirme adımını tamamen atlatır ve araya girme saldırılarını zorlaştırır.

# Apache / .htaccess
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
UyarıHSTS’i yalnızca HTTPS’in kusursuz çalıştığını doğruladıktan sonra açın. max-age=31536000 bir yıl demektir; sertifikanız bozulursa ziyaretçilerin tarayıcısı bir yıl boyunca sitenizi HTTP ile açmayı reddeder ve uyarıyı atlama seçeneği sunmaz. Test aşamasında max-age=300 ile başlayın.

Yenileme Sorunları ve Sık Görülen Hatalar#

Hata / BelirtiSebepÇözüm
NET::ERR_CERT_COMMON_NAME_INVALIDSertifika farklı bir alan adı için verilmişSertifikayı doğru alan adı ve www varyantıyla yeniden alın
NET::ERR_CERT_DATE_INVALIDSertifikanın süresi dolmuş veya sunucu saati yanlışcertbot renew çalıştırın; timedatectl ile saati kontrol edin
NET::ERR_CERT_AUTHORITY_INVALIDAra sertifika (chain) eksikcert.pem yerine fullchain.pem kullanın
Challenge failed: connection refused80 portu kapalı ya da başka servis dinliyorGüvenlik duvarında 80’i açın, sudo ss -tlnp | grep :80 ile kontrol edin
Too many certificates already issuedLet’s Encrypt haftalık limitine takıldınızBir hafta bekleyin; test için --dry-run ya da staging ortamı kullanın
Yönlendirme döngüsü (ERR_TOO_MANY_REDIRECTS)Ters vekil sunucu HTTPS’i sonlandırıyor, uygulama HTTP görüyorX-Forwarded-Proto başlığını ilet ve uygulamada bunu okut
Alt alan adında sertifika yokSertifika yalnızca ana alan adını kapsıyorAlt alan adını -d ile ekleyin ya da wildcard alın
SSL kurulum ve yenileme hataları

Sunucu tarafındaki sertifika sağlığını düzenli izlemek isterseniz monitoring araçlarına sertifika süresi kontrolü ekleyebilirsiniz; Uptime Kuma bu kontrolü hazır sunar ve süre 14 günün altına indiğinde uyarı gönderir.

Kurulumu Doğrulama#

Sertifikayı kurduktan sonra üç kontrol yapın:

  1. Zincir ve protokol testi#

    Komut satırından hızlı kontrol: openssl s_client -connect alanadiniz.com:443 -servername alanadiniz.com. Çıktıda Verify return code: 0 (ok) görmelisiniz.

  2. Yönlendirme testi#

    curl -I http://alanadiniz.com komutu HTTP/1.1 301 Moved Permanently ve Location: https://... döndürmeli. 302 dönüyorsa kuralınızı düzeltin.

  3. Karma içerik taraması#

    Ana sayfa, bir iç sayfa ve varsa ödeme sayfasını geliştirici konsolu açıkken gezin. Tek bir “Mixed Content” uyarısı bile kalmamalı.

HTTPS’e geçtikten sonra sitenizin hız değerleri de değişir: HTTP/2 ve HTTP/3 devreye girdiği için genellikle iyileşir. Ölçümü Core Web Vitals optimizasyonu sayfasındaki yöntemlerle yapabilirsiniz.

Özetle#

SSL kurulumu artık zor ya da pahalı bir iş değil. Paylaşımlı hostingte AutoSSL bir tıklama, kendi sunucunuzda Certbot tek komut. Kritik noktalar şunlar: yalnızca TLS 1.2 ve 1.3 açık kalsın, fullchain.pem kullanın, 80 portunu doğrulama için açık tutun ve HTTP’den HTTPS’e mutlaka 301 yönlendirme verin.

Kurulumdan sonra kilit çıkmıyorsa sertifikayı değil sayfa kaynaklarını kontrol edin; sorun neredeyse her zaman karma içeriktir. Her şey oturduğunda HSTS başlığını ekleyip yapılandırmayı tamamlayabilirsiniz. Sunucu tarafında kök erişimi olan bir ortama ihtiyaç duyarsanız VDS paketleri üzerinden ilerleyebilirsiniz.

Sıkça Sorulan Sorular#

Let’s Encrypt sertifikası gerçekten ücretsiz mi ve güvenli mi?

Evet, tamamen ücretsizdir ve tüm modern tarayıcılar tarafından tanınır. Şifreleme gücü ücretli sertifikalarla birebir aynıdır; ikisi de aynı TLS protokolünü ve aynı anahtar uzunluklarını kullanır. Tek farkı, sertifikanın 90 gün geçerli olması ve otomatik yenileme kurulmasını gerektirmesidir. Ticari sertifikalar ek kimlik doğrulama ve mali garanti sunar.

SSL kurdum ama tarayıcı hâlâ “güvenli değil” diyor, neden?

Neredeyse her zaman karma içerik (mixed content) sorunudur: sayfanın kendisi HTTPS ile yüklenir ama içindeki bir görsel, CSS veya JavaScript dosyası hâlâ http:// adresinden çağrılır. Tarayıcının geliştirici konsolunu açıp “Mixed Content” uyarılarına bakın; veritabanındaki eski adresleri toplu değiştirmek sorunu bitirir.

SSL sertifikası SEO’yu etkiler mi?

Evet, HTTPS Google’ın açıkça doğruladığı bir sıralama sinyalidir; ayrıca HTTP siteler tarayıcıda “Güvenli değil” etiketi aldığı için hemen çıkma oranını yükseltir. Geçişte kritik nokta, eski HTTP adreslerinden yenilerine 301 kalıcı yönlendirme vermektir. 302 kullanırsanız birikmiş sıralama gücü yeni adrese aktarılmaz.

Wildcard sertifika nedir, ne zaman gerekir?

Wildcard sertifika *.alanadi.com biçiminde yazılır ve alan adının tüm birinci seviye alt alan adlarını tek sertifikayla kapsar. Çok sayıda alt alan adı (blog, panel, api, magaza) kullanıyorsanız yönetimi ciddi biçimde kolaylaştırır. Let’s Encrypt wildcard sertifikayı ücretsiz verir ama DNS-01 doğrulaması zorunludur.

Certbot sertifikayı otomatik yeniliyor mu?

Evet. Certbot kurulumu sırasında bir systemd timer veya cron görevi ekler ve günde iki kez sertifika süresini kontrol eder. Bitmesine 30 günden az kalan sertifikaları kendiliğinden yeniler. sudo certbot renew --dry-run komutuyla yenilemenin sorunsuz çalışıp çalışmadığını istediğiniz zaman test edebilirsiniz.

SSL sitemi yavaşlatır mı?

Hayır, tersine hızlandırır. TLS el sıkışması ilk bağlantıda birkaç milisaniye ekler ama HTTPS olmadan HTTP/2 ve HTTP/3 kullanılamaz. Bu protokoller tek bağlantı üzerinden paralel istek yapabildiği için sayfa yükleme süresi HTTP/1.1’e göre belirgin biçimde kısalır. TLS 1.3 ile el sıkışma da tek gidiş dönüşe iner.

Sertifikam süresi doldu, site açılmıyor. Ne yapmalıyım?

Önce yenilemeyi elle deneyin: sudo certbot renew --force-renewal. Hata alıyorsanız 80 portunun açık olduğunu ve alan adının hâlâ bu sunucuya yönlendiğini doğrulayın; Certbot doğrulama için bu ikisine ihtiyaç duyar. Paylaşımlı hostingte panelden AutoSSL’i yeniden çalıştırmak genellikle yeterlidir.

Hosting, Domain ve Web — Tüm Rehberler#

  1. Web Hosting Nedir ve Nasıl Seçilir?
  2. cPanel Kullanım Rehberi
  3. WordPress Kurulumu: Hosting Üzerinde Adım Adım
  4. SSL Sertifikası Kurulumu ve HTTPS’e Geçiş
  5. Domain Nedir ve Nasıl Satın Alınır?
  6. DNS Kayıtları Nedir? A, CNAME, MX, TXT ve SRV
  7. Hosting Üzerinde Kurumsal E-posta Oluşturma
  8. Web Sitesi Hızlandırma ve Core Web Vitals Optimizasyonu

Bu rehber Batihost teknik ekibi tarafından hazırlanmış ve tarihinde güncellenmiştir. Eksik veya hatalı bulduğunuz bir bilgi varsa bize bildirin.

Başa dön