RHEL 9/8'de Nginx için Let's Encrypt SSL Sertifikasını yükleyin
Bu makalede, RHEL'de Nginx web sunucusu HTTP işlemlerinin güvenliğini sağlamak için kullanacağımız Let's Encrypt Sertifika Yetkilisi'nden ücretsiz olarak alınan bir SSL/TLS sertifikasını nasıl oluşturup kuracağınız konusunda size rehberlik edeceğiz. Fedora, Rocky Linux ve AlmaLinux gibi RHEL tabanlı dağıtımlar.
RHEL ve RHEL tabanlı dağıtımlara Let's Encrypt for Apache'yi yüklemek istiyorsanız aşağıdaki kılavuzu izleyin:
Gereksinimler
- Sunucunun genel IP Adresini işaret edecek geçerli
A
DNS kayıtlarına sahip kayıtlı bir alan adı. - Nginx web sunucusu, SSL etkin ve Sanal Ana Bilgisayarlar etkinleştirilmiş olarak yüklenmiştir (yalnızca birden fazla alan adı veya alt alan adı barındırma için).
Test Ortamı Kurulumumuz
Adım 1: Nginx Web Sunucusunu RHEL Sistemlerine Kurun
1. İlk adımda, Nginx arka plan programı kurulu değilse, Nginx web sunucusunu Epel depolarından kurmak için aşağıdaki komutları root ayrıcalıklarıyla verin.
------------- On RHEL, Rocky & AlmaLinux 9 -------------
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
------------- On RHEL, Rocky & AlmaLinux 8 -------------
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
------------- Install Nginx Web Server -------------
yum install nginx
Not: Fedora kullanıcılarının epel deposunu yüklemelerine gerek yoktur.
Adım 2: Let's Encrypt'i (Certbot) RHEL Sistemlerine yükleyin
2. Let's Encrypt istemcisini Linux sistemlerine kurmanın en hızlı yöntemi, epel deposundan certbot ve python3-certbot-nginx paketlerini yüklemektir. .
dnf install certbot python3-certbot-nginx
3. certbot istemcisi yüklendikten sonra, aşağıdaki komutu çalıştırarak Let's Encrypt yazılımının yüklü sürümünü doğrulayın:
certbot --version
certbot 1.30.0
3. Adım: Nginx için Ücretsiz Let's Encrypt SSL Sertifikası Alın
4. Nginx için ücretsiz bir SSL/TLS Sertifikası alma işlemi, Let's Encrypt Standalone kullanılarak manuel olarak gerçekleştirilecektir. eklenti.
Bu yöntem, Let's Encrypt istemcisinin sunucunun kimliğini doğruladığı ve sertifikalar oluşturduğu süre boyunca 80 bağlantı noktasının boş olmasını gerektirir.
Dolayısıyla, Nginx zaten çalışıyorsa, aşağıdaki komutla arka plan programını durdurun ve 80 numaralı bağlantı noktasının artık ağ yığınında kullanılmadığını doğrulamak için ss yardımcı programını çalıştırın.
service nginx stop
systemctl stop nginx
ss -tln
5. Artık certbot komutunu --nginx
Let's Encrypt'ten ücretsiz bir SSL Sertifikası almanın zamanı geldi. > Nginx etki alanları için Let's Encrypt güvenlik sertifikasının alınmasını ve yapılandırılmasını başlatmak için.
certbot --nginx
Or
certbot --nginx -d example.com -d www.example.com
6. Son olarak, eğer her şey olması gerektiği gibi giderse, bash terminalinizde bir tebrik bilgi mesajı gösterilecektir. Mesaj ayrıca sertifikanın süresinin ne zaman dolacağını da görüntüleyecektir.
Adım 4: Nginx'te Let's Encrypt SSL Sertifikasını Kurun
9. Artık ücretsiz bir SSL/TLS Sertifikasına sahip olduğunuza göre, alan adınızın kullanabilmesi için onu Nginx web sunucusuna yüklemenin zamanı geldi.
Tüm yeni SSL sertifikaları, alan adınızın adını taşıyan bir dizinin altındaki /etc/letsencrypt/live/
dizinine yerleştirilir. Etki alanınız için verilen Sertifika dosyalarını listelemek ve tanımlamak için ls komutunu kullanın.
sudo ls /etc/letsencrypt/live/
sudo ls -al /etc/letsencrypt/live/your_domain.tld
10. Sertifika dosyalarını Nginx'e yüklemek ve SSL'yi etkinleştirmek için /etc/nginx/nginx.conf
dosyasını düzenlemek üzere açın ve aşağıdaki ifadeleri son dinleme satırından sonra ekleyin. sunucu bloğu. Aşağıdaki çizimi kılavuz olarak kullanın.
vi /etc/nginx/nginx.conf
Nginx SSL bloğu alıntısı:
SSL configuration
listen 443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/your_domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain.tld/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
SSL sertifikalarının alan adı dizesini kendi alanınızla eşleşecek şekilde değiştirin.
11. Son olarak Nginx hizmetini yeniden başlatın ve alanınızı https://alaniniz
adresindeki HTTPS Protokolü aracılığıyla ziyaret edin. Sayfa herhangi bir sertifika hatası olmadan düzgün bir şekilde yüklenmelidir.
systemctl restart nginx
service nginx restart
12. SSL/TLS sertifikasını ve doğruluğunu doğrulamak için aşağıdaki bağlantıyı ziyaret edin:
https://www.ssllabs.com/ssltest/analyze.html
13. Sunucunuzun zayıf bir DH anahtar değişimini desteklediğine ve genel olarak B notuna sahip olduğuna dair bir bildirim alırsanız, yeni bir < oluşturun. Aşağıdaki komutları çalıştırarak sunucunuzu Logjam saldırısına karşı korumak için /etc/nginx/ssl/ dizinine Strong>Diffie-Hellman şifresini ekleyin.
mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
openssl dhparam -out dhparams.pem 4096
Bu örnekte 4096 bitlik bir anahtar kullandık; bu anahtarın oluşturulması aslında uzun sürüyor ve sunucunuza ve SSL anlaşmasına fazladan yük getiriyor.
Bir anahtarı bu kadar uzun süre kullanmaya açık bir ihtiyaç yoksa ve paranoyak değilseniz, 2048 bitlik bir anahtarla güvende olmalısınız.
14. DH anahtarı oluşturulduktan sonra Nginx yapılandırma dosyasını açın ve DH anahtarını eklemek için ssl_ciphers
satırının sonrasına aşağıdaki ifadeleri ekleyin ve alan adınızın güvenlik düzeyini A+
notuna yükseltin.
vi /etc/nginx/nginx.conf
Aşağıdaki blok alıntısını Nginx.conf'a ekleyin:
ssl_dhparam /etc/nginx/ssl/dhparams.pem;
ssl_session_timeout 30m;
ssl_session_cache shared:SSL:10m;
ssl_buffer_size 8k;
add_header Strict-Transport-Security max-age=31536000;
15. Değişiklikleri uygulamak için Nginx hizmetini yeniden başlatın ve yukarıda belirtilen bağlantıdan önceki sonuç önbelleğini temizleyerek SSL sertifikanızı yeniden test edin.
systemctl restart nginx
service nginx restart
Adım 5: Otomatik Yenileme Nginx Ücretsiz, SSL Sertifikalarını Şifrelemenizi Sağlar
16. Let's Encrypt CA, 90 gün boyunca geçerli olan ücretsiz SSL/TLS sertifikalarını yayınladı. Sertifikalar, webroot eklentisi kullanılarak, web sunucunuzu durdurmadan, aşağıdaki komutları vererek, geçerlilik süresi dolmadan manuel olarak yenilenebilir ve uygulanabilir:
certbot --nginx -d example.com -d www.example.com
systemctl reload nginx
Yukarıdaki komutu çalıştırırken example.com
kısmını alanınızla eşleşecek şekilde değiştirdiğinizden emin olun.
17. Sertifikayı süresi dolmadan otomatik olarak yenilemek için, mevcut bir crontab dosyasında cron işi oluşturun.
crontab -e
Sertifikanın geçerlilik süresinin kontrol edilmesi ve yenilenmesi için her gün öğle saatlerinde çalışacak olan aşağıdaki cron işini dosyanın altına ekleyin. --quiet
seçeneği, certbot'a çıktı üretmemesini söyler.
0 12 * * * /usr/bin/certbot renew --quiet
Bu kadar! Artık Nginx sunucusu, web sitenizde ücretsiz bir SSL/TLS Let's Encrypt sertifikasıyla güvenli web içeriği sunabilir.