
CentOS’ta Nginx Üzerine SSL Sertifikası Kurulumu
CentOS'ta Nginx üzerinde SSL sertifikası kurmak için aşağıdaki adımları takip edebilirsiniz:
1. Gerekli Paketlerin Yüklenmesi
Öncelikle Nginx'in yüklü ve çalışır durumda olduğundan emin olun. Ayrıca, SSL için gerekli olan mod_ssl
paketini de yüklemeniz gerekebilir.
sudo yum install epel-release -y
sudo yum install nginx mod_ssl -y
2. SSL Sertifikası ve Anahtarını Temin Etme
Bir SSL sertifikası almanız gerekir. Sertifikayı satın alabileceğiniz bir sağlayıcıdan temin edebilir veya Let's Encrypt gibi ücretsiz bir sertifika kullanabilirsiniz. Burada örnek olarak Let's Encrypt kullanacağız.
Let's Encrypt sertifikası almak için certbot
aracı kullanılabilir:
sudo yum install certbot python3-certbot-nginx -y
3. SSL Sertifikası Almak
Let's Encrypt ile otomatik olarak SSL sertifikası almak için aşağıdaki komutu kullanabilirsiniz:
sudo certbot --nginx
Bu komut, Nginx konfigürasyon dosyalarınızı tarar ve SSL sertifikasını otomatik olarak kurar. Sertifika almak için bazı bilgiler istenecek, bunlar genellikle e-posta adresi ve domain adı olacaktır.
Eğer sertifika başarılı bir şekilde alındıysa, sertifika dosyaları /etc/letsencrypt/live/
dizininde saklanacaktır.
4. Nginx Konfigürasyonunu Güncelleme
Nginx yapılandırma dosyasını SSL'i destekleyecek şekilde güncellemeniz gerekiyor. Sertifika dosyaları ve anahtarları genellikle şu dizinlerde bulunur:
- Sertifika dosyası:
/etc/letsencrypt/live/yourdomain.com/fullchain.pem
- Anahtar dosyası:
/etc/letsencrypt/live/yourdomain.com/privkey.pem
/etc/nginx/nginx.conf
veya /etc/nginx/conf.d/default.conf
dosyasını düzenleyin.
Aşağıdaki satırları sunucu bloğunuzda uygun yere ekleyin veya değiştirin:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'HIGH:!aNULL:!MD5';
ssl_prefer_server_ciphers on;
# Diğer Nginx yapılandırma ayarları
location / {
# Web root ayarları
}
}
# HTTP üzerinden gelen talepleri HTTPS'ye yönlendirme
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$server_name$request_uri;
}
Burada önemli olan, SSL sertifikalarının doğru yollarla belirtildiğinden emin olmaktır. Ayrıca, HTTP (port 80) üzerinden gelen tüm taleplerin HTTPS (port 443) üzerinden yönlendirilmesi sağlanmalıdır.
5. Nginx’i Yeniden Başlatma
Yapılandırma dosyasındaki değişikliklerin geçerli olması için Nginx'i yeniden başlatmalısınız:
sudo systemctl restart nginx
6. SSL Sertifikasını Test Etme
Sertifikanın düzgün çalışıp çalışmadığını test etmek için tarayıcınızda sitenizi ziyaret edin. URL'nin başında https://
olduğundan ve tarayıcıda yeşil bir kilit simgesi bulunduğundan emin olun.
Alternatif olarak, sslchecker.com
gibi çevrimiçi araçlarla sertifikanızın geçerliliğini kontrol edebilirsiniz.
7. SSL Sertifikasını Otomatik Yenileme
Let's Encrypt sertifikaları 90 gün süreyle geçerlidir. Otomatik olarak yenilenmesi için crontab kullanabilirsiniz.
Crontab dosyasını düzenleyin:
sudo crontab -e
Ve aşağıdaki satırı ekleyin:
0 12 * * * certbot renew --quiet && systemctl reload nginx
Bu komut her gün saat 12:00'de sertifikanın yenilenip yenilenmediğini kontrol eder ve yenilenmişse Nginx'i yeniden yükler.
Bu adımları takip ederek CentOS üzerinde Nginx için SSL sertifikasını başarıyla kurabilirsiniz.