• UbuntuNginx
  • Nginx Let’s Encrypt Ücretsiz SSL Kurulumu

Bu makalede Ubuntu yüklü bir sunucuda, Web sunucusu olarak Nginx kullanan siteler için ücretsiz Let’s Encrypt SSL kurulumunu anlatacağım.

Giriş

Let’s Encrypt, internet dünyasını daha güvenli bir hale getirmek için ücretsiz olarak SSL/TLS sertifikaları veren bir dernektir. Web dünyasının önde gelen şirketleri bu derneğe destek olarak faaliyetlerinin devamını sağlamaktadır.

Daha fazla bilgi için bknz:
https://tr.wikipedia.org/wiki/Let's_Encrypt

Bu makalede Certbot uygulaması aracılığıyla Let’s Encrypt SSL sunucumuza kurup, SSL alma işini otomatiğe bağlayacağız.

Gereksinimler

SSL alabilmek için alan adınıza ait A kayıtlarının girilmiş ve DNS tam olarak çözümlenmiş olması gerekir. Nginx site konfigrasyon dosyanızda 80 portu için alan adınız www’li ve www olmadan eklemiş olmanız gerekiyor. Şimdi bunu kontrol etmek için /etc/nginx/sites-available/senin.conf dizininde bulunan dosyaya bakalım.

server {
    listen 80;
    listen [::]:80;
   .
   .
    server_name domain.com www.domain.com;
   .
  .
}

Certbot Kurulumu

Let’s Encrypt SSL almanın en kolay yolu Certbot kullanmaktır.
Şimdi Certbot kurulumunu yapalım.

Ubuntu 18.04 için;
sudo add-apt-repository ppa:certbot/certbot
Kabul için ENTER basın.
sudo apt install python-certbot-nginx
Ubuntu 20.04 için;
sudo apt install certbot python3-certbot-nginx
Eğer güvenlik duvarı kullanıyorsanız Güvenlik duvarında HTTPS bağlantılarına izin verilip verilmediğini kontrol etmelisiniz.

sudo ufw status
Çıktısı:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Bu sunucuda HTTPS bağlantılarına izin verilmediğini görüyoruz. Şimdi UFW güvenlik duvarında SSL bağlantılarına izin vermek için:

sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

Tekrar kontrol edelim

sudo ufw status
Çıktısı:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx Full (v6)            ALLOW       Anywhere (v6)

##Yeni Bir SSL Alma
sudo certbot --nginx -d example.com -d www.example.com
Yukarıdaki komutta alan adınızı değiştirmeyi unutmayın.

Her şey yolunda giderse Certbot size HTTPS ayarlarınızın nasıl yapılandırmak istediğinize dair soru soracak.

OutputPlease 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 seçerseniz Certbot sizin için www yönelnedirmesini otomatik olaraksite conf dosyasına ekleyecek.
2 seçerseniz yönlendirme işlemini manuel yapmanız gerekecektir.
##SSL Sertifikalarını Otomatikleştirme
Bu işlemi root kullanıcısı ile yapmaınız gerekiyor.
Let’s Encrypt tarafından verilen SSL sertifikalarının geçerlilik süresi 3 aydır. Yani bu işlemi her 3 ayda bir yenilemek gerekir. Fakat bununla Certbot varken bizim uğraşmamıza gerek kalmayacak. Bu işlem ile sunucunuzda kullandığınız tüm siteler için SSL yenilenmesi otomatik yapılacak. Aşağıdaki komutu çalıştırmanız yeterli.

sudo certbot renew --dry-run

    mekici hocam certbot komutu böyle uygulanması daha sağlıklı. Aynı sunucuda 2. 3. sitelere de ssl ayarlar iken diğer türlü sorun yaratabiliyor.

    certbot --nginx --agree-tos --redirect --no-eff-email -m mailadresi -d domain.com -d www.domain.com

      durpoy Hocam bu dokümanı hiç bilmeyen biri için yol göstersin diye yazdım. Zamanla diğer ayrıntıları meraklı olan öğrenir zaten.

      8 ay sonra

      mekici sudo certbot –nginx -d example.com -d www.example.com

      sudo cerlbot command not found hatası alıyorum hocam

        5 gün sonra

        mekici sudo ufw status

        status: inactive hatası alıyorum

        uygulamama rağmen:

        sudo ufw allow ‘Nginx Full’
        sudo ufw delete allow ‘Nginx HTTP’

          Hadımköy Kombi Servisi Minecraft Türk Sunucular