Sunucu GüvenliğiDestek

SSL Kurulumu ve HTTPS Nasıl Yapılır? Let's Encrypt ile Ücretsiz

Kısa cevap

SSL kurulumu için en pratik yol, Let's Encrypt'in ücretsiz sertifikasını certbot aracıyla kurmaktır. Certbot sertifikayı otomatik alır, web sunucusunu yapılandırır ve yenilemeyi zamanlar; ardından karışık içeriği düzeltip HSTS ekleyerek HTTPS'i tamamlarsınız.

SSL/TLS sertifikası, bir web sitesinin ziyaretçileriyle kurduğu bağlantıyı şifreleyen ve adres çubuğundaki kilit simgesini sağlayan katmandır. Sertifika artık bir lüks ya da yalnızca e-ticaret sitelerinin ihtiyacı değil; tarayıcılar HTTP siteleri "Güvenli değil" olarak işaretliyor, arama motorları HTTPS'i sıralama sinyali olarak kullanıyor ve modern tarayıcı özelliklerinin çoğu yalnızca güvenli bağlantıda çalışıyor. İyi haber, bunu Let's Encrypt sayesinde ücretsiz ve otomatik olarak kurabilmenizdir.

Bu rehberde, bir sunucuya sıfırdan ücretsiz SSL kurmayı, bağlantıyı otomatik yenilemeyi, kurulumdan sonra ortaya çıkan karışık içerik (mixed content) sorunlarını gidermeyi ve HSTS ile güvenliği pekiştirmeyi adım adım anlatıyoruz. Komutları root ya da sudo yetkili bir kullanıcıyla çalıştırabilirsiniz.

1. SSL Neden Şart? Sertifikanın İşlevi

SSL, ziyaretçi ile sunucu arasında akan tüm veriyi şifreleyerek arada dinleyen birinin parolaları, form verilerini ve oturum çerezlerini okumasını engeller. Şifrelemenin yanında iki işlev daha görür: verinin yolda değiştirilmediğini garanti eder (bütünlük) ve sitenin gerçekten iddia ettiği alan adı olduğunu doğrular (kimlik). Bu üçü olmadan bir site, güvenli kabul edilemez.

Sertifika olmadan yalnızca güvenlik değil, itibar ve erişilebilirlik de kaybolur: tarayıcı uyarısı ziyaretçileri kaçırır, arama motoru sıralaması düşer ve HTTP/2, servis çalışanları gibi modern özellikler devre dışı kalır. Kısacası HTTPS bugün web sitesi güvenliğinin en temel katmanıdır; genel resmi görmek için web sitesi güvenliği nasıl sağlanır rehberimize göz atabilirsiniz.

Şifrelemenin özellikle önem kazandığı durum, ziyaretçilerin güvenli olmayan ağlarda bağlanmasıdır. Açık bir Wi-Fi ağında HTTP üzerinden gönderilen bir parola, aynı ağdaki herkes tarafından okunabilir; HTTPS bu senaryoyu tamamen ortadan kaldırır. Bir giriş formu, iletişim formu ya da ödeme adımı bulunan hiçbir site bu koruma olmadan yayına alınmamalıdır. Kısacası SSL, "yapılırsa iyi olur" listesinde değil, yayına almanın ön koşulları arasındadır.

2. Sertifika Türlerini Anlayın

Doğru sertifikayı seçmek için üç temel türü ayırt etmeniz yeterlidir. Doğrulama düzeyine göre DV (Domain Validation), OV (Organization Validation) ve EV (Extended Validation) sertifikaları vardır; kapsamlarına göre ise tek alan adı, joker (wildcard) ve çoklu alan adı (SAN) sertifikaları bulunur. Çoğu site için ihtiyaç, ücretsiz temin edilebilen bir DV sertifikasıdır.

DV sertifikası yalnızca alan adının size ait olduğunu doğrular ve şifreleme açısından ücretli sertifikalarla birebir aynı gücü sunar; tarayıcıda görünen kilit ve şifreleme kalitesi arasında hiçbir fark yoktur. OV ve EV, kurumsal kimlik doğrulaması gerektiren büyük kuruluşlar için anlamlıdır. Bir alt alan adı yığınını (*.site.com) tek sertifikayla kapatmak isterseniz wildcard sertifikaya, bunun için de DNS doğrulamasına ihtiyacınız olur. Bu rehberde ücretsiz DV sertifikası veren Let's Encrypt'i kuruyoruz.

Bir noktanın altını çizelim: ücretli bir sertifikanın "daha güvenli" olduğu yaygın bir yanılgıdır. Şifrelemeyi sağlayan matematik her iki türde de aynıdır; ücretli sertifikaların sunduğu ek şey, sigorta ve kurumsal kimlik doğrulaması gibi ticari unsurlardır, teknik bir üstünlük değil. Bu yüzden bir blog, kurumsal tanıtım sitesi ya da standart bir e-ticaret sitesi için ücretsiz bir DV sertifikası fazlasıyla yeterlidir. Sertifika seçiminde gereksiz maliyete girmeden doğru kararı vermek, güvenlik bütçenizi daha etkili katmanlara ayırmanızı sağlar.

3. Let's Encrypt ile Ücretsiz SSL Kurun (Certbot)

Let's Encrypt, ücretsiz ve otomatik DV sertifikaları veren bir sertifika otoritesidir; certbot ise bu sertifikaları alıp web sunucunuza kuran resmî araçtır. Certbot; sertifikayı temin eder, Nginx ya da Apache yapılandırmanızı otomatik düzenler ve HTTP'den HTTPS'e yönlendirmeyi sizin yerinize ekler. Böylece elle sertifika dosyası kopyalamak zorunda kalmazsınız.

Önce certbot'u ve web sunucusu eklentisini kurun. Nginx için:

apt update && apt install certbot python3-certbot-nginx -y

Bu komut certbot'u ve Nginx ile entegre çalışmasını sağlayan eklentiyi kurar. Ardından sertifikayı alıp yapılandırmayı otomatik yaptırın:

certbot --nginx -d site.com -d www.site.com

Bu komut belirtilen alan adları için sertifikayı alır, Nginx yapılandırmasına ekler ve HTTP isteklerini HTTPS'e yönlendirmeyi teklif eder; yönlendirmeyi kabul edin. Apache kullanıyorsanız python3-certbot-apache paketini kurup --nginx yerine --apache bayrağını kullanın. İşlem bittiğinde siteyi https:// ile açıp kilit simgesini görmelisiniz. Sunucunuzun genel güvenlik durumunu da görmek isterseniz ücretsiz sunucu güvenlik kontrolü ile eksik noktaları çıkarabiliriz.

4. Otomatik Yenilemeyi Doğrulayın

Let's Encrypt sertifikaları yalnızca 90 gün geçerlidir; bu kısa süre kasıtlıdır ve otomasyonu teşvik eder. Certbot kurulumla birlikte bir zamanlanmış görev ekler ve sertifikaların süresi dolmadan otomatik yeniler, dolayısıyla elle müdahale gerekmez. Yine de bu mekanizmanın çalıştığını bir kez doğrulamak, ileride sürpriz bir kesintiyle karşılaşmamak için şarttır.

Yenileme sürecinin sorunsuz çalışacağını gerçek yenileme yapmadan test edebilirsiniz:

certbot renew --dry-run

Bu komut, sertifikaları gerçekten yenilemeden yenileme sürecinin tümünü prova eder; hata almadan tamamlanıyorsa otomatik yenileme güvendedir. Certbot'un zamanlayıcısının etkin olduğunu systemctl list-timers | grep certbot ile de görebilirsiniz. Sertifika yenilemesi ve genel bakım işlerini gözden kaçırmamak için sürekli bakım ve izleme hizmetimizden faydalanabilirsiniz.

Otomatik yenilemenin en sık başarısız olduğu senaryo, doğrulama yolunun bozulmasıdır. Certbot yenileme sırasında alan adının hâlâ size ait olduğunu doğrulamak zorundadır; bu doğrulama HTTP üzerinden yapılıyorsa, .well-known/acme-challenge yoluna erişimi engelleyen bir yönlendirme ya da güvenlik duvarı kuralı yenilemeyi durdurabilir. Bu yüzden bir güvenlik başlığı ya da yönlendirme kuralı eklerken bu yolu istisna tutmaya dikkat edin. Ek bir güvence olarak, yenileme başarısız olduğunda size e-posta gönderecek şekilde certbot'u yapılandırmak, sertifikanın sessizce süresi dolmadan önce sizi uyarır.

5. Karışık İçerik (Mixed Content) Sorununu Düzeltin

Siteyi HTTPS'e taşıdıktan sonra en sık karşılaşılan sorun karışık içeriktir: sayfa HTTPS ile yüklenirken içindeki bazı kaynakların (resim, script, stil dosyası) hâlâ http:// ile çağrılmasıdır. Bu durumda tarayıcı kilidi göstermez, "tam güvenli değil" uyarısı verir ya da güvensiz kaynakları tamamen engeller. Amaç, tüm iç kaynakların HTTPS üzerinden yüklenmesini sağlamaktır.

Önce tarayıcının geliştirici konsolunu açıp "Mixed Content" uyarılarını listeleyin; her uyarı, düzeltilmesi gereken bir http:// bağlantısını gösterir. Çözüm, bu bağlantıları https:// yapmak ya da protokolü sabitlemeden göreli hale getirmektir. WordPress gibi CMS'lerde eski http:// bağlantıları veritabanında saklı olabilir; bu durumda site adresini güncelledikten sonra içerikteki eski bağlantıları toplu değiştirmeniz gerekir.

Toplu düzeltme için CSP'nin upgrade-insecure-requests yönergesi pratik bir kestirme yol sunar. Bu yönergeyi bir güvenlik başlığı olarak eklediğinizde, tarayıcı sayfadaki tüm http:// kaynak isteklerini otomatik olarak https:// sürümüne yükseltir; böylece içeriği tek tek düzeltmeden karışık içerik uyarılarını büyük ölçüde ortadan kaldırırsınız. Yine de bu yalnızca kaynağın HTTPS sürümü mevcutsa işe yarar; dış bir kaynak HTTPS desteklemiyorsa onu HTTPS destekleyen bir alternatifle değiştirmeniz gerekir. Uzun vadede en temizi, içerikteki tüm bağlantıları baştan HTTPS olarak tutmaktır.

6. HSTS ile HTTPS'i Zorunlu Kılın

HSTS (HTTP Strict Transport Security), tarayıcıya "bu siteye bundan sonra yalnızca HTTPS ile bağlan" talimatı veren bir güvenlik başlığıdır. Bir kez alındığında tarayıcı, kullanıcı http:// yazsa bile isteği HTTPS'e çevirir ve araya girme (SSL stripping) saldırılarını engeller. Bu, HTTPS'i bir tercih olmaktan çıkarıp zorunlu hale getiren adımdır.

HSTS olmadan, sitesine daha önce HTTPS ile bağlanmış bir kullanıcı bile adres çubuğuna http:// yazdığında ilk istek şifresiz gider; işte saldırgan tam bu ilk anı hedef alır. HSTS bu boşluğu kapatarak tarayıcının o ilk isteği bile güvenliye çevirmesini sağlar. HSTS'yi web sunucusunda tek bir başlıkla ekleyebilirsiniz. Nginx için sunucu bloğuna:

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

Bu satır, tarayıcıya siteye ve tüm alt alan adlarına bir yıl boyunca yalnızca HTTPS ile bağlanmasını söyler. HSTS'yi açmadan önce sitenizin ve tüm alt alan adlarınızın HTTPS'te sorunsuz çalıştığından emin olun; aksi halde kullanıcılar siteye erişemeyebilir. HSTS dahil tüm güvenlik başlıklarını ayrı bir rehberde derinlemesine ele aldık: güvenlik başlıkları ve HTTP security headers. Sunucu genelinde bir sertleştirme planlıyorsanız Linux sunucu sıkılaştırma hizmetimiz bu başlıkları da yapılandırır.

Sık Sorulan Sorular

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

Evet. Let's Encrypt, büyük teknoloji şirketlerinin desteklediği kâr amacı gütmeyen bir sertifika otoritesidir ve verdiği DV sertifikaları tüm modern tarayıcılarca güvenilir kabul edilir. Şifreleme gücü ücretli sertifikalarla birebir aynıdır; tek farkı otomasyona uygun kısa geçerlilik süresidir.

Sertifika 90 günde bir bitiyor, elle yenilemem gerekir mi?

Hayır. Certbot kurulumla birlikte bir zamanlayıcı ekler ve sertifikaların süresi dolmadan otomatik yeniler. Yapmanız gereken tek şey certbot renew --dry-run ile bu mekanizmanın çalıştığını bir kez doğrulamaktır. Doğru kurulduğunda süreç tamamen otomatiktir.

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

En yaygın nedeni karışık içeriktir: sayfa HTTPS ile yüklenirken içindeki bazı kaynaklar hâlâ http:// ile çağrılıyordur. Tarayıcının geliştirici konsolundaki "Mixed Content" uyarılarını inceleyip bu bağlantıları HTTPS'e çevirdiğinizde kilit yerine oturur.

Wildcard sertifikaya ihtiyacım var mı?

Yalnızca çok sayıda alt alan adını (blog.site.com, panel.site.com gibi) tek sertifikayla kapatmak istiyorsanız gerekir. Tek bir alan adı ve www sürümü için standart bir DV sertifikası yeterlidir. Let's Encrypt wildcard sertifika da verir, ancak bunun için DNS doğrulaması yapmanız gerekir.

Certbot Apache ile de çalışır mı?

Evet. python3-certbot-apache paketini kurup certbot --apache komutunu kullanmanız yeterlidir. Certbot, Apache yapılandırmanızı otomatik olarak düzenler, sertifikayı ekler ve HTTP'den HTTPS'e yönlendirmeyi sizin için yapar.


SSL'i kurdunuz ancak sunucunun geri kalanının güvenli olduğundan emin değil misiniz? Ücretsiz sunucu güvenlik kontrolü ile SSL yapılandırmanızı, güvenlik başlıklarınızı ve açık portlarınızı tek bir raporda çıkaralım. Kurulumda takılırsanız ya da acil bir sertifika sorununuz varsa WhatsApp üzerinden 7/24 ulaşabilir, kapsamlı sertleştirme için Linux sunucu sıkılaştırma hizmetimizi değerlendirebilirsiniz.

Bu konuda hizmetlerimiz

İlgili rehberler

Kendiniz uğraşmak zorunda değilsiniz

Bu rehberdeki işi sizin için yapalım: teşhis ücretsiz, fiyat sabit, temizlenemezse iade.

7/24 kayıt alınır · aynı gün müdahale · temizlenemezse ücret iade