CentOS 8'de Let's Encrypt ile Nginx'in Güvenliği Nasıl Sağlanır?


Nisan 2016'da Electronic Frontier Foundation (EFF) tarafından kurulan Let's Encrypt, web siteleri için kesinlikle hiçbir ücret ödemeden TLS şifrelemesi sağlayan ücretsiz ve otomatik bir dijital sertifikadır.

Let's Encrypt sertifikasının amacı, güvenlik sertifikasının otomatik olarak yenilenmesinin yanı sıra doğrulama, oluşturma, imzalama işlemlerini de otomatik hale getirmektir. Bu sertifika, HTTPS protokolünü kullanan web sunucularına basit ve sorunsuz bir şekilde, herhangi bir karmaşıklık olmadan şifreli bağlantı kurulmasına olanak sağlar. Sertifika yalnızca 90 gün boyunca geçerlidir ve sonrasında otomatik yenileme etkinleştirilebilir.

Önerilen Okuma: CentOS 8'de Apache'nin Let's Encrypt SSL Sertifikası ile Güvenliği Nasıl Sağlanır?

Bu makalede, CentOS 8'de Nginx web sunucusunun güvenliğini sağlamak amacıyla ücretsiz bir SSL sertifikası almak için Let's Encrypt'i nasıl kurabileceğinizi göstereceğiz ( aynı talimatlar RHEL 8'de de çalışır. SSL sertifikanızı otomatik olarak nasıl yenileyeceğinizi de sizlere açıklayacağız.

Önkoşullar

Devam etmeden önce aşağıdakileri kontrol ettiğinizden emin olun.

1. Web sunucusunun özel bir IP adresine işaret eden Tam Nitelikli Alan Adı (FQDN). Bunun, DNS web barındırma sağlayıcınızın istemci alanında yapılandırılması gerekir. Bu eğitim için, 34.70.245.117 IP adresine işaret eden linuxtechwhiz alan adını kullanıyoruz.

2. Bunu, gösterildiği gibi dig komutunu kullanarak ileriye doğru arama yaparak da doğrulayabilirsiniz.

dig linuxtechwhiz.info

3. Web sunucusunda Nginx yüklü ve çalışıyor. Terminale giriş yapıp aşağıdaki komutu çalıştırarak bunu doğrulayabilirsiniz. Nginx kurulu değilse CentOS 8'e Nginx Kurulumu makalemizi takip edin.

sudo systemctl status nginx

4. Bir web tarayıcısında web sunucusunun URL'sini ziyaret ederek de doğrulama yapabilirsiniz.

http://server-IP-or-hostname

URL'den sitenin güvenli olmadığını ve dolayısıyla şifrelenmediğini açıkça görebiliriz. Bu, web sunucusuna yapılan tüm taleplerin ele geçirilebileceği anlamına gelir; bunlar arasında kullanıcı adları, şifreler, sosyal güvenlik numaraları ve kredi kartı bilgileri gibi kritik ve gizli bilgiler de yer alır.

Şimdi ellerimizi kirletelim ve Let's Encrypt'i yükleyelim.

1. Adım. CentOS 8'e Certbot'u yükleyin

Let's Encrypt sertifikasını yüklemek için öncelikle certbot'un yüklü olması gerekir. Bu, Let's Encrypt Authority'den bir güvenlik sertifikası alan genişletilebilir bir istemcidir ve web sunucusu tarafından kullanılmak üzere sertifikanın doğrulanmasını ve yapılandırılmasını otomatikleştirmenize olanak tanır.

curl komutunu kullanarak certbot'u indirin.

sudo curl -O https://dl.eff.org/certbot-auto

Daha sonra sertifikayı /usr/local/bin dizinine taşıyın.

sudo mv certbot-auto /usr/local/bin/certbot-auto

Ardından, gösterildiği gibi certbot dosyasına dosya izni atayın.

chmod 0755 /usr/local/bin/certbot-auto

Adım 2. Nginx Sunucu Bloğunu Yapılandırın

Nginx'teki bir sunucu bloğu, Apache'deki sanal ana bilgisayarın eşdeğeridir. Sunucu bloklarının ayarlanması, yalnızca tek bir sunucuda birden fazla web sitesi kurmanıza olanak sağlamakla kalmaz, aynı zamanda certbot'un alan adının sahipliğini Sertifika Yetkilisi – CA'ya kanıtlamasına da olanak tanır.

Bir sunucu bloğu oluşturmak için gösterilen komutu çalıştırın.

sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info

Alan adını kendi alan adınızla değiştirdiğinizden emin olun. Daha sonra aşağıdaki konfigürasyonu yapıştırın.

server {
   server_name www.linuxtechwhiz.info;
   root /opt/nginx/www.linuxtechwhiz.info;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
   error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Dosyayı kaydedin ve metin düzenleyicisinden çıkın.

3. Adım: CentOS 8'e Lets Encrypt Sertifikasını yükleyin

Şimdi Let's Encrypt güvenlik sertifikasının alınmasını ve yapılandırılmasını başlatmak için certbot komutunu kullanın.

sudo /usr/local/bin/certbot-auto --nginx

Bu komut, gösterildiği gibi birden fazla Python paketini ve bunların bağımlılıklarını çalıştıracak ve yükleyecektir.

Bunu daha sonra gösterildiği gibi etkileşimli bir bilgi istemi izleyecektir:

Her şey yolunda giderse, en sonunda bir tebrik mesajı görebilmelisiniz.

Nginx sitenizin şifrelendiğini doğrulamak için web sayfasını yeniden yükleyin ve URL'nin başındaki asma kilit sembolüne dikkat edin. Bu, sitenin güvenliğinin SSL/TLS şifrelemesi kullanılarak sağlandığını gösterir.

Güvenlik sertifikası hakkında daha fazla bilgi almak için asma kilit simgesini tıklayın ve 'Sertifika' seçeneğini seçin.

Güvenlik sertifikası hakkında daha fazla bilgi aşağıda gösterildiği gibi görüntülenecektir.

Ayrıca güvenlik sertifikasının gücünü test etmek için https://www.ssllabs.com/ssltest/ adresine gidin ve güvenlik sertifikasının durumuna ilişkin daha doğru ve derinlemesine bir analiz bulun.

Adım 4. Let’s Encrypt Sertifikasını Yenileme

Daha önce de gördüğümüz gibi, güvenlik sertifikası yalnızca 90 gün süreyle geçerlidir ve bu sürenin bitiminden önce yenilenmesi gerekir.

Aşağıdaki komutu çalıştırarak sertifika yenileme sürecini simüle edebilir veya test edebilirsiniz:

sudo /usr/local/bin/certbot-auto renew --dry-run

Çözüm

Bu, CentOS 8'de Let's Encrypt ile Nginx'in güvenliğini sağlamaya yönelik bu eğitimi tamamlıyor. Let's Encrypt, normalde manuel olarak yapılması karmaşık bir iş olan Nginx web sunucunuzun güvenliğini sağlamanın etkili ve sorunsuz bir yolunu sunar.

Siteniz artık tamamen şifrelenmiş olmalıdır. Sertifikanın sona erme tarihine birkaç hafta kala EFF, süresi dolan bir sertifika nedeniyle ortaya çıkabilecek kesintiyi önlemek amacıyla sizi e-posta yoluyla sertifikayı yenilemeniz konusunda uyaracaktır. Bugünlük bu kadar arkadaşlar!