Teşekkürler yararlı bir konu 👍
Ücretsiz SSL! Certbot ile SSL Kurulumu
-
Web sunucusu Nginx olan bir Ubuntu sunucuda Certbot uygulaması ile ücretsiz Let’s Encrypt SSL kurulumu yapacağız.
Certbot Kurulumu
SSL sertifikası almak için Let’s Encrypt’i kullanmanın ilk adımı, sunucunuza Certbot yazılımını yüklemektir.
sudo apt install certbot python3-certbot-nginx
Certbot artık kullanıma hazır, ancak Nginx için SSL’yi otomatik olarak yapılandırması için, Nginx’in bazı yapılandırmalarını değiştirmemiz gerekiyor.
Nginx Yapılandırması
Nginz site yayın dosyasında alan adınızın hem www’li hemde www olmayan kombinasyonlarını eklemeniz gerekiyor.
Nginx site yayın dosyası genellikle
etc/nginx/sites-available/example.com
dizininde bulunur.... server_name example.com www.example.com; ...
Eğer www olmayan server_name ekli değilse ekleyin. Ardından
nginx -t
komutu ile bir haya olup olmadığını kontrol edin ve değişikliklerin aktif olması içinsystemctl reload nginx
komutunu çalıştırın.Güvenlik duvarında https bağlantılarına izin verme
Eğer güvenlik duvarı kullanıyorsanız https bağlantılarına izin verildiğinden emin olmanız gerekiyor. Bunun için
ufw status
komutunu çalıştırın.Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)
Yukarıda örnekte HTTPS bağlantıların aizin verilmediğini görüyoruz. Şimdi UFW’nin Nginx HTTPS bağlantılarına izin vermesi için aşağıdaki komutu çalıştırın.
sudo ufw allow 'Nginx Full'
Şimdi tekrar kontrol edelim.
sudo ufw status
Çıktısı:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6)
Artık SSL kurulumuna hazırız.
SSL Kurulumu
Certbot, eklentiler aracılığıyla SSL sertifikaları almanın çeşitli yollarını sunar. Nginx eklentisi, Nginx’i yeniden yapılandırma ve gerektiğinde yapılandırmayı yeniden yükleme işini üstlenecektir. Bu eklentiyi kullanmak için aşağıdakileri yazın:
sudo certbot --nginx -d example.com -d www.example.com
Bu işlemin ardından Certbot sizden bir e-posta adresi girmenizi isteyecek. Geçerli bir posta adresi girin. Olası SSL yenileme veya zamanı dolan SSL sertifikaları için Let’s Encrypt size bilgilendirme postası atacaktır.
Eğer yukarıdaki komut başarılı olursa certbot, HTTPS ayarlarınızı nasıl yapılandırmak istediğinizi soracaktır.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
1’i seçerseniz Certbot otomatik Nhinx yönlendirmesi yapacaktır. 2’yi seçerseniz bu yönlendirmeyi kendiniz yapmanız gerekecek.
Seçimin ardından Certbot Yapılandırma güncellenecek ve Nginx yeni ayarları almak için yeniden yüklenecek. certbotişlemin başarılı olduğunu ve sertifikalarınızın nerede saklandığını belirten bir mesajla sona erecek:
Output IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2020-08-18. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Certbot otomatik SSL yenileme
Let’s Encrypt ücretsiz SSL’nin süresi 3 aydır. Yani her üç ayda bir bu işlemi yapmanız gerekir. Ama bunla uğraşmamak için bu işi otomatiğe bağlayabiliriz.
Zamanlayıcının durumuna bakalım.
sudo systemctl status certbot.timer
Çıktısı:
● certbot.timer - Run certbot twice daily Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled) Active: active (waiting) since Mon 2020-05-04 20:04:36 UTC; 2 weeks 1 days ago Trigger: Thu 2020-05-21 05:22:32 UTC; 9h left Triggers: ● certbot.service
Yenileme sürecini test etmek için aşağıdakilerle aşağıdaki komutu kullanabilirsiniz.
sudo certbot renew --dry-run
Hiçbir hata görmüyorsanız, hazırsınız demektir. Certbot, gerektiğinde sertifikalarınızı yenileyecek ve değişiklikleri almak için Nginx’i yeniden yükleyecektir.
-