Ubuntu ve Nginx Üzerinde SSL Sertifikası Kurulum Rehberi
Merhaba! Bu yazıda, dünya genelinde milyonlarca web sitesine güç veren Nginx üzerinde HTTPS (SSL) kurulumu nasıl yapılır, adım adım inceleyeceğiz. Rehberimiz Ubuntu işletim sistemi üzerinde hazırlanmıştır ancak diğer Linux dağıtımlarında da benzer şekilde uygulanabilir.
Nginx hızlı ve düşük kaynak tüketen bir web sunucusudur. Ubuntu ise ücretsiz, güvenilir ve yaygın kullanılan bir Linux dağıtımıdır. Bu güçlü ikiliyi güvenli hâle getirmenin en önemli adımı, web sitenizi SSL sertifikası ile HTTPS’e geçirmektir.
HTTPS, ziyaretçinizin tarayıcısı ile sunucunuz arasındaki trafiği şifreleyerek güvenliği artırır ve Google arama sonuçlarında SEO açısından avantaj sağlar.
SSL Kurulumunda İzlenecek Adımlar
- Adım 1: CSR ve Private Key (Özel Anahtar) Oluşturma
- Adım 2: SSL Sertifikası Satın Alma ve Doğrulama
- Adım 3: SSL Sertifikasını Sunucuya Yükleme
- Adım 4: Nginx Ayarlarını SSL Sertifikası için Yapılandırma
- Adım 5: Firewall (Güvenlik Duvarı) Ayarlarını Yapma
- Adım 6: SSL Sertifikasını Kontrol Etme
Gereksinim: Sunucunuzda Nginx’in kurulu olması gerekmektedir.
Adım 1: CSR ve Private Key Oluşturma
Öncelikle, SSL sertifikası alabilmek için bir CSR (Certificate Signing Request) ve bir Private Key (Özel Anahtar) üretmemiz gerekir. Sertifika dosyalarımızı düzenli tutmak için /etc altında bir ssl klasörü oluşturuyoruz.
sudo mkdir /etc/ssl
Bu komut ile /etc klasörü içinde ssl klasörü oluşturduk. Sertifikalarımızı burada saklayacağız.
CSR ve Özel Anahtar üretmek için aşağıdaki komutu çalıştırın:
sudo openssl req -new -newkey rsa:2048 -nodes -keyout /etc/ssl/latestsoftwaredevelopers.key -out /etc/ssl/latestsoftwaredevelopers.csr
Bu komut sonucunda iki dosya oluşacaktır:
latestsoftwaredevelopers.key– Özel anahtarlatestsoftwaredevelopers.csr– Sertifika başvuru dosyası
Komut çalışırken terminal sizden bazı bilgiler isteyecektir:
- Country Name (2 letter code): Ülke kodu (örneğin TR).
- State or Province Name: İl adı (Türkçe karakter olmadan, örn: Istanbul).
- Locality Name: İlçe adı.
- Organization Name: Şirket veya organizasyon adı (yoksa boş geçilebilir).
- Organizational Unit Name: Departman (örn: BT, Yazilim).
- Common Name: Alan adınız (örn:
latestsoftwaredevelopers.com) – en kritik alan. - Email Address: Yönetici e-posta adresi (genellikle
admin@alanadiniz.com).
CSR içeriğini görüntülemek için:
cat /etc/ssl/latestsoftwaredevelopers.csr
Adım 2: SSL Sertifikası Satın Alma ve Doğrulama
Artık bir SSL sertifikası satın alabiliriz. Sadece tek bir alan adını güvence altına almak isteyen basit bir web sitesi için Comodo PositiveSSL gibi uygun fiyatlı çözümler kullanılabilir. E-ticaret veya kurumsal projeler için ise işletme seviyesinde (Business) SSL tercih edilebilir.
Sertifikayı satın aldığınız firmaya az önce oluşturduğunuz CSR içeriğini iletmelisiniz. Daha sonra firmadan bir doğrulama yöntemi seçmeniz istenir:
- Dosya Tabanlı Doğrulama (HTTP / HTTPS): Sunucuya belirli bir dosya yüklenir.
- DNS Tabanlı Doğrulama (CNAME): DNS kayıtlarınıza bir CNAME kaydı eklenir.
- E-posta Doğrulaması: Yönetici e-posta adresine gelen link onaylanır.
Doğrulama tamamlandığında sağlayıcınız size .crt uzantılı bir SSL sertifikası dosyası gönderir.
Adım 3: SSL Sertifikasını Sunucuya Yükleme
Size gönderilen .crt dosyasını indirin ve SFTP/FTP (örn. FileZilla, WinSCP) kullanarak sunucunuzdaki /etc/ssl/ klasörüne yükleyin.
Önemli Not: Alan adınızın DNS ayarlarında (A kaydı, CNAME vb.) doğru IP adresine yönlendirildiğinden emin olun. Aksi takdirde sertifikanız geçerli görünmeyebilir.
Adım 4: Nginx Ayarlarını SSL Sertifikası için Yapılandırma
Şimdi Nginx’e bu sertifikayı nerede bulacağını ve HTTPS isteğini nasıl karşılayacağını söylememiz gerekiyor. Site konfigürasyon dosyasına geçelim:
cd /etc/nginx/sites-available/
nano default
Varsayılan server bloğunuzu aşağıdaki örneğe benzer şekilde düzenleyin:
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL Ayarları
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
# Sertifika dosyalarının yolları
ssl_certificate /etc/ssl/latestsoftwaredevelopers.crt;
ssl_certificate_key /etc/ssl/latestsoftwaredevelopers.key;
# Protokoller
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
root /var/www/html;
index index.html index.htm;
server_name latestsoftwaredevelopers.com; # Kendi alan adınızı yazın
location / {
try_files $uri $uri/ /index.html;
}
location ~ \.(js)$ {
try_files $uri $uri/ =404;
}
}
Angular / Frontend Notu: Eğer Angular, React veya başka bir frontend framework kullanıyorsanız ve uygulamanız bir Backend API’ye bağlanıyorsa, backend tarafının da HTTPS üzerinden yayın yaptığından emin olun. Aksi takdirde tarayıcıda “Mixed Content” hataları ile karşılaşabilirsiniz.
Adım 5: Firewall (Güvenlik Duvarı) Ayarlarını Yapma
Sunucunuzda UFW (Uncomplicated Firewall) aktif ise, HTTPS trafiği için 443 portunu açmanız gerekir. Önce mevcut uygulama profillerini listeleyelim:
sudo ufw app list
Ardından Nginx’in hem HTTP (80) hem de HTTPS (443) portlarını kullanabilmesi için aşağıdaki komutu çalıştırın:
sudo ufw allow in "Nginx Full"
Son olarak Nginx servisini yeniden başlatarak yaptığınız değişiklikleri aktif edin:
sudo systemctl restart nginx
Adım 6: SSL Sertifikasını Kontrol Etme
Artık web sitenizi HTTPS ile test edebilirsiniz. Tarayıcınıza kendi alan adınızı aşağıdaki biçimde yazın:
https://latestsoftwaredevelopers.com
Adres çubuğunda kilit simgesini görüyorsanız, SSL sertifikanız başarıyla kurulmuş ve HTTPS yapılandırması doğru şekilde çalışıyor demektir.
Bu yazıda, Ubuntu üzerinde çalışan Nginx sunucunuzu HTTP’den HTTPS’e geçirerek nasıl güvenli hâle getireceğinizi adım adım anlattık. CSR ve private key oluşturmadan, SSL sertifikası satın almaya; Nginx ve firewall yapılandırmasından HTTPS doğrulamasına kadar tüm süreci özetledik.
Umarız bu rehber Nginx üzerinde SSL sertifikası kurarken size yardımcı olur. Bir sonraki yazımızda görüşmek üzere, takipte kalmayı unutmayın! 🚀