Nginx HTTPS (SSL) Kurulumu: Adım Adım Ubuntu Rehberi

İngilizce'ye Geç

Nginx HTTPS (SSL) Kurulumu: Adım Adım Ubuntu Rehberi

Kısa Özet: Nginx Üzerinde SSL (HTTPS) Nasıl Kurulur?

Nginx HTTPS kurulumu temel olarak 5 adımdan oluşur: 1) Sunucuda OpenSSL ile bir CSR (Sertifika İmza İsteği) ve Private Key (Gizli Anahtar) oluşturulur. 2) CSR kodu kullanılarak bir SSL sertifikası satın alınır (veya Let's Encrypt ile ücretsiz üretilir). 3) Sağlayıcıdan alınan .crt dosyası ve .key dosyası sunucuya (örneğin /etc/ssl/ dizinine) yüklenir. 4) Nginx konfigürasyon dosyasında 443 portu dinlenerek sertifika yolları (ssl_certificate) tanımlanır. 5) UFW (Güvenlik Duvarı) üzerinden 443 portuna izin verilip Nginx yeniden başlatılır.

Web sitenizin güvenliği ve arama motorlarındaki (SEO) itibarı için HTTPS protokolü artık bir seçenek değil, zorunluluktur. Nginx gibi yüksek performanslı ve düşük kaynak tüketen bir web sunucusu kullanıyorsanız, SSL sertifikası kurulum süreci oldukça pratik ve systematiktir. Bu rehberde, Ubuntu tabanlı Linux sunucunuzda sıfırdan HTTPS aktivasyonunu adım adım gerçekleştireceğiz.

Nginx HTTPS SSL Kurulumu ve Sunucu Yapılandırması
İlgili DevOps İçerikleri: Nginx üzerinde Angular projelerinizi (SPA) yayınlarken karşılaştığınız 404 routing hatalarının çözümü ve temel sunucu yapılandırmaları için Angular Nginx Deployment ve Routing Ayarları rehberimize ve sunucu yönetiminde hayat kurtaran Temel Linux Terminal Komutları makalemize göz atabilirsiniz.

Adım 1 — CSR ve Private Key Oluşturma (OpenSSL)

SSL sertifikası satın alabilmek için öncelikle sunucunuzda (Ubuntu/Linux) bir CSR (Certificate Signing Request) kodu ve bu koda eşlik eden bir şifreleme anahtarı (Private Key) üretmeniz gerekir.

Öncelikle sertifikalarınızı barındıracağınız klasörü oluşturun (Eğer yoksa):

sudo mkdir -p /etc/ssl/private

Aşağıdaki OpenSSL komutunu çalıştırarak 2048 bitlik RSA anahtarınızı ve CSR dosyanızı oluşturun:

sudo openssl req -new -newkey rsa:2048 -nodes \
-keyout /etc/ssl/private/site.key \
-out /etc/ssl/site.csr

Bu komut size Ülke, Şehir, Organizasyon gibi sorular soracaktır. En önemli adım "Common Name (CN)" adımıdır. Buraya mutlaka güvenliğe kavuşturmak istediğiniz domain adresinizi (Örn: example.com veya www.example.com) yazmalısınız.

Oluşan dosyaların görevleri şunlardır:

  • site.key: Private Key (Gizli Anahtar). Bu dosya ASLA kimseyle paylaşılmamalıdır ve sunucunuzda kalmalıdır.
  • site.csr: Sertifika İsteği. Bu dosyanın içindeki metni kopyalayıp SSL satın alacağınız firmaya vereceksiniz.

Adım 2 — SSL Sertifikası Satın Alma ve Doğrulama

Sunucunuzda oluşturduğunuz site.csr dosyasının içindeki metni (cat komutuyla okuyabilirsiniz) kopyalayarak SSL sağlayıcınıza (Comodo, GlobalSign, Sectigo vb.) yapıştırın.

Firma, domainin gerçekten size ait olduğunu kanıtlamanız için sizden bir doğrulama isteyecektir:

  • E-posta Doğrulaması: admin@domain.com adresine gelen linke tıklama.
  • DNS Doğrulaması: Domain yöneticinize TXT veya CNAME kaydı ekleme.
  • HTTP Doğrulaması: Sitenizin kök dizinine bir .txt dosyası yükleme.

Doğrulama işlemi bittikten sonra firma size genellikle bir .crt veya .pem dosyası (Public Certificate) iletecektir.

Adım 3 — Sertifikayı Sunucuya Yükleme

Firma tarafından size verilen sertifika dosyasını (Örn: site_bundle.crt), SFTP, FileZilla veya SCP kullanarak sunucunuzdaki /etc/ssl/certs/ dizinine yükleyin.

Sertifika Zinciri (Chain): Genellikle size kendi sertifikanızın yanında "Root" ve "Intermediate" sertifikalar da verilir. Tarayıcıların sitenize tam güvenmesi için bu dosyaları birleştirip tek bir "Bundle" CRT dosyası haline getirmeniz ve Nginx'e bu birleşik dosyayı göstermeniz gerekebilir.

Adım 4 — Nginx SSL Konfigürasyonu (HTTPS Yönlendirme)

Artık elimizde hem Private Key hem de Public Certificate mevcut. Şimdi Nginx'e 443 (HTTPS) portunu dinlemesini ve bu dosyaları kullanmasını söyleyeceğiz. Konfigürasyon dosyanızı açın (Örn: /etc/nginx/sites-available/default veya example.com.conf).

server {
    # Gelen güvensiz HTTP (80) isteklerini HTTPS'e yönlendir (Opsiyonel ama tavsiye edilir)
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

server {
    # HTTPS (443) portunu dinle
    listen 443 ssl http2;
    server_name example.com www.example.com;

    # Sertifika ve Gizli Anahtar Dosya Yolları
    ssl_certificate /etc/ssl/certs/site_bundle.crt;
    ssl_certificate_key /etc/ssl/private/site.key;

    # Güvenlik Protokolleri (Eski TLS sürümlerini kapatın)
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        root /var/www/html;
        # Angular/React SPA'lar için routing 404 çözümü
        try_files $uri $uri/ /index.html; 
    }
}

Yapılandırmada sözdizimi (syntax) hatası yapıp yapmadığınızı test etmek için şu komutu çalıştırın:

sudo nginx -t

Çıktıda syntax is ok ve test is successful görüyorsanız harika!

Adım 5 — Firewall (UFW) Ayarları

Eğer sunucunuzda UFW (Uncomplicated Firewall) aktifse, dışarıdan gelen 443 portu (HTTPS) isteklerine izin vermeniz gerekir. Aksi halde sitenize erişilemez.

# Nginx için hem HTTP (80) hem HTTPS (443) izinlerini açın
sudo ufw allow "Nginx Full"

# Nginx servisini yeniden başlatarak ayarları devreye alın
sudo systemctl restart nginx

Adım 6 — HTTPS Testi ve Let's Encrypt Önerisi

Kurulum tamamlandı! Tarayıcınızı açıp https://siteniz.com adresine gidin. URL çubuğunun sol tarafında bir "Kilit" simgesi görüyorsanız bağlantınız başarıyla şifrelenmiştir.

Tarayıcıda HTTPS başarılı kurulum kilit simgesi
Otomasyon Önerisi (Let's Encrypt - Certbot): Eğer kurumsal, ücretli (Wildcard, EV) bir sertifikaya ihtiyacınız yoksa; tüm bu CSR oluşturma ve sertifika indirme adımlarını atlayabilirsiniz. Ubuntu sunucunuza Certbot kurarak, Nginx üzerindeki standart HTTP sitenizi saniyeler içinde ücretsiz olarak HTTPS'e çevirebilir ve süresi bitince otomatik yenilenmesini sağlayabilirsiniz.

7. Sık Sorulan Sorular (SSS)

HTTPS (SSL) kullanmak SEO için neden önemli?

Google, kullanıcı verilerinin güvenliğine büyük önem verir. Şifrelenmemiş (HTTP) siteleri arama sonuçlarında alt sıralara atar ve tarayıcılarda "Güvenli Değil" uyarısı çıkartır. HTTPS kullanmak sitenizin sıralamasını ve kullanıcı güvenini doğrudan artırır.

TLSv1 ve TLSv1.1 protokollerini neden kapattık?

Bu protokoller eski, modası geçmiş ve güvenlik zafiyetleri (vulnerabilities) barındıran şifreleme yöntemleridir. Modern sunucu mimarilerinde sadece TLSv1.2 ve TLSv1.3 kullanılması sektör standardıdır.

Nginx -t komutunda "Permission denied" hatası alıyorum, ne yapmalıyım?

Bu hata, sertifika (crt) veya key dosyalarınızın izinlerinin Nginx'in okuyamayacağı şekilde ayarlandığını gösterir. Dosya izinlerini chmod komutuyla ayarlamalı veya doğru dosya yolunu girdiğinizden emin olmalısınız.

Sonuç

Bu detaylı rehberde, bir Linux (Ubuntu) sunucusu üzerinde Nginx HTTPS kurulumunu, Private Key oluşturulmasından güvenlik duvarı ayarlarına kadar baştan sona öğrendiniz. Artık sunucunuzdaki veriler şifreli (Encrypted) bir şekilde taşınıyor ve hem kullanıcılarınız hem de arama motorları gözünde güvenilir bir platforma sahipsiniz.

Etiketler: nginx ssl kurulumu, https nginx ubuntu, ssl certificate linux, nginx security, letsencrypt nginx

Son Güncelleme: 2026

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Güncel yazılım teknolojilerinin takip edildiği blog.

FrontEnd ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *