Ücretsiz SSL! Certbot ile SSL Kurulumu

  • Admin

    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çin systemctl 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.





İLGİNİ ÇEKEBİLİR