AFAIK

Certbot İle Let’s Encrypt SSL Sertifika İşlemleri

Güncelleme:
Bir önceki, Let’s Encrypt – SSL/TLS Sertifikası başlıklı yazı bahsi geçmiş olan, Let’s Encrypt sertifikası oluşturma sürecinde kullanabileceğimiz 2 önerilen araçla devam edelim. Bu araçlardan ...
GÖRSEL

Bir önceki, Let’s Encrypt – SSL/TLS Sertifikası başlıklı yazı bahsi geçmiş olan, Let’s Encrypt sertifikası oluşturma sürecinde kullanabileceğimiz 2 önerilen araçla devam edelim. Bu araçlardan ilki komut satırı arayüzü üzerinden kullanabileceğimiz ve pek çok işlemi kolaylıkla yönetebilmemizi sağlayan Certbot.

Certbot

Certbot, HTTPS bağlantılar için otomatik bir şekilde Let’s Encrypt sertifikaları oluşturmayı ve yönetmeyi sağlayan ücretsiz, açık kaynaklı yazılım aracı. certbot.eff.org üzerinden detaylarına ulaşılabilecek araç Electronic Frontier Foundation (EFF) tarafından geliştirilmektedir.

Pek çok barındırma sağlayıcısı (hosting provider), HTTPS’yi etkinleştirmek için dahili araçlara sahiptir. Hosting providers sayfasından ilgili listeyi görüntüleyebilirsiniz. Peki, Certbot hangi durumlarda tercih edilebilir?

  • Komut satırı arayüzüne ve kullanımına aşina iseniz,
  • Yayın olan bir HTTP websiteniz varsa ve 80. portu açık ise,
  • Web sitesini dedicated server, virtual private server ya da cloud-hosted server üzerinde yayınlıyor, SSH bağlantısı ile bağlantı sağlanabiliyor ve sudo ile yönetebiliyorsanız.

Eğer, Certbot kullanmaya karar vermişseniz kurulum için Certbot Instructions sayfasındaki özelleştirme talimatlarını takip edebilirsiniz.

Certbot

Unutmadan, Certbot her 60 günde bir sertifikaları yeniler ve ayrıca eklentilerle farklı servisler / platformlar için de çeşitli ek özellikler sunar.

whynopadlock.com, check-your-website.server-daten.de, Let’s Debug ve SSL Labs sertifika kontrolü yapabilirsiniz.

Certbot Kurulumu

Get Certbot sayfasında farklı işletim sistemleri ve özelleştirme seçeneklerine uygun olarak hazırlanmış indirme yönergelerini görüntüleyebilirsiniz. Burada yer alan seçenekler arasından, Homebrew ile olan adımlarla ilerleyelim. Bu sayede, sertifika işlemlemlerini bilgisayar üzerinden manuel olarak yürütmek mümkün.

brew install certbot

Komutun uygulanmasının ardından kısa bir süre içerisinde uygulama indirilmiş ve yapılandırılmış olacaktır. Emin olmak adına bir test işlemi gerçekleştirelim.

certbot --version

Herhangi bir hata mesajı dönmemişse bir sonraki adıma geçebiliriz. Certbot işlemlerinde root yetkisi gerekmekte. Dolayısıyla, komutları sudo ile işleme almamız ve şifre ile doğrulamalıyız. Ardından, /usr/local/bin/certbot için 0755 tanımlamamızı yapabiliriz.

sudo chown root /usr/local/bin/certbot
chmod 0755 /usr/local/bin/certbot
/usr/local/bin/certbot --version

Sunucu üzerinden işlemler yürütmek için (örn. digitalocean) aşağıdaki adımlar izlenebilir.

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
 
#apache için
sudo apt-get install certbot python-certbot-apache
sudo certbot --apache
 
#nginx için
sudo apt-get install certbot python-certbot-nginx
sudo certbot --nginx
certbot --version

Certbot Kullanımı

Certbot sertifika alma, yenileme veya iptal etme gibi belirli eylemler için komutlar ve alt komutlar kullanmaktadır. Aşağıda, öne çıkan ve sıklıkla kullanılan komutlardan bazılarını görebilirsiniz. User Guide sayfasından diğer komutları görüntüleyebilirsiniz. Tabi, her zaman olduğu gibi –help flag’i ile araç detaylarına ulaşabiliriz.
certbot --help
O halde, örnek işlemlere başlayabiliriz. İlk örneğimizde nasıl yeni bir sertifika oluşturabileceğimize bakalım.
certbot certonly -d alanadi.com --nginx|apache|standalone|webroot
Aynı işlemi birden fazla alan adı için de (elbette flag’leri de dahil ederek) gerçekleştirebiliriz.
certbot certonly --cert-name alanadi.com -d alanadi.org,www.alanadi.org
Diğer yandan, var olan ve bir alan adı ile ilişkilendirmiş bir sertifikayı farklı alan adları için de tanımlayabiliriz.
certbot --expand -d alanadi.com,yenialanadi.com,farklialanadi.com
Oluşturulmuş sertifikaları görüntülemek için ise certificates komutunu kullanabiliriz.
certbot certificates
Peki, var olan bir sertifikayı yenilemek istediğimizde ne yapmalıyız?
certbot renew
Bu komut ile uygun olan tüm sertifikalar yenilenecektir. Tek bir alan adı üzerinden işlem yapmak istersek komutu şu şekilde yeniden ele alabiliriz.
certbot renew --cert-name www.alanadi.com --nginx
Ek olarak, sertifika yenileme işlemi öncesinde veya sonrasında belirli bir işlemin gerçekleştirilmesini (örneğin sunucunun durdurulması ve işlem sonunda başlatılması) isteyebiliriz.
certbot renew --cert-name www.alanadi.com --nginx --pre-hook "service nginx stop" --post-hook "service nginx start"
Şimdiye kadar sertifikalarımızı oluşturduk, görüntüledik ve yeniledik. Peki, bir sertifikayı nasıl silebiliriz?
certbot delete --cert-name alanadi.com
Evet, sıklıkla kullanılan komutlardan bir kaçına mümkün olabilecek ihtiyaçlar çerçevesinde yer vermeye çalıştım. Son bir not olarak, bir sertifika oluşturulduğunda ve/ya yenilendiğinde certbot ilgili işlemi cronjob olarak tanımlar ve sertifikayı yenileme komutunu aşağıdaki alanlardan birine yüklenir.

/etc/crontab/
/etc/cron.*/*
systemctl list-timers
Yukarıdaki işlemlere ek diğer detaylar için User Guide, certbot API‘si için de ilgili dokümantasyonu tekrar not olarak düşmüş olayım.

Kaynakça

  1. How do I generate the Let’s Encrypt certificate and key on my own device?
  2. Generate Wildcard SSL certificate using Let’s Encrypt/Certbot
  3. How to Set Up Free SSL certificates with Let’s Encrypt and Apache
  4. Super-fast Secure WordPress Install on DigitalOcean with NGINX, PHP7, and Ubuntu 16.04 LTS
  5. Installing letsencrypt.org SSL Certificates on NGINX in 5 minutes or less
  6. Getting started with Let’s Encrypt!
  7. Install Let’s Encrypt to Create SSL Certificates
Ceyhun Enki Aksan

Kullanıcı Davranışları Analizi (User Behavior Analysis) ve Kullanıcı Deneyim Tasarımı (UX Design) üzerine çalışmalar yürütmekte, bu süreçte edindiğim teknik ve pratik bilgileri fayda sağlamak motivasyonuyla (afaik / as far as i know) paylaşmaktayım.

HABERDAR OL

Yeni eklenen projeler, eğitimler, içerikler ve yayınlanan videolar e-posta adresine gelsin.