07.06.2023

Ubuntu 20.04 için Nginx'e SSL Sertifikası Nasıl Kurulur

Bir web sitesinde HTTPS protokolünü kullanmak için TLS/SSL sertifikası edinmeli ve Nginx'i yapılandırmalısınız. Çok sayıda hizmette para karşılığında güvenilir bir sertifika yetkilisinden sertifika alabilirsiniz. Ücretsiz sürüm Let's Encrypt hizmeti sayesinde mümkündür ve burada 3. adımda açıklanmıştır. Ayrıca temel Nginx yapılandırması yapmanız gerekir. Kendinden imzalı sertifikalar kullanırsanız, tarayıcı güvenliği kontrol ederken bir hata görüntüleyecektir.

Serverspace nda zaten yüklü olan "Nginx" uygulaması ile bir sunucu oluşturabilirsiniz.

Temel SSL yapılandırması

Bir SSL sertifikası satın aldıysanız, alınan ortak anahtardan ve sertifika merkezlerinin zincirinden sertifikanızın eksiksiz bir zincirini oluşturmanız gerekir. Bunu yapmak için, zincir dosyasının içeriğini ortak anahtar dosyasının sonuna yerleştirin. Dosyalar .pem veya .crt uzantısına sahip olabilir.

cat cert.pem chain.pem > fullchain.pem

Şimdi dosyaları sunucunuza kopyalayın. Özel anahtarı (.key veya .pem) /etc/ssl/private/ klasörüne ve fullchain.pem dosyasını /etc/ssl/certs/ klasörüne koymak iyi bir seçimdir.

Şimdi sanal konağınızın yapılandırma dosyasını açın (/etc/nginx/sites-available/domain-name.com) ve aşağıdaki satırları ekleyin:

server {
listen 443 ssl;
server_name domain-name.com; # Your website's domain name
ssl_certificate /etc/ssl/certs/fullchain.pem; # Path to the full chain of your SSL certificate
ssl_certificate_key /etc/ssl/private/privkey.pem; # Path to the private key of your SSL certificate
}

HTTP bölümünde olduğu gibi bu bölümde de root ve index parametrelerini ayarlamayı unutmayın.
Nginx'i yeniden başlatın.

systemctl restart nginx

Şimdi https://www.ssllabs.com/ssltest/ adresini kullanarak SSL sertifikanızı ve yapılandırmanızı kontrol edebilir ve A sınıfına karşılık gelmeyen ayarlarla devam edebilirsiniz.

Güncelliğini yitirmiş protokolleri devre dışı bırakma ve sunucu şifreleri için önceliği etkinleştirme

TLS 1.2 ve 1.3 sürümlerinin kullanımını ve sunucu şifreleri için önceliği belirtin. etc/nginx/nginx.conf dosyasını açın ve http bölümündeki aşağıdaki satırları düzeltin veya ekleyin.

http {
...
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
...
}

Nginx'i yeniden başlatın.

systemctl restart nginx

HTTP'den HTTPS'ye Yönlendirme

Siteyi yalnızca HTTPS üzerinden çalışacak şekilde yapılandırmak için HTTP ile bir yönlendirme eklemeniz gerekir. Sanal konağınızın yapılandırma dosyasını açın (/etc/nginx/sites-available/domain-name.com), HTTP bölümünü silin:

server {
listen 80;

}

Şimdi aşağıdaki parametrelerle yeni bir tane ekleyin:

server {
listen 80;
server_name domain-name.com; # Your website's domain name
return 301 https://$host$request_uri; # Redirect
}

Şimdi Nginx'i yeniden başlatın.

systemctl restart nginx