Malumunuz, Let's Encrypt'in hayatımıza girmesiyle birlikte, güvenli site kurma maliyetlerinde, daha da önemlisi sertifika yönetme süreçlerinde ciddi bir rahatlama yaşadık. Aşağıdaki notlar GNU/Linux üzerinde Nginx ile rekor bir sürede SSL sertifikası almaya yöneliktir. Digital Ocean topluluğu tarafından hazırlanmış daha detaylı bir belgeyi bu adreste bulabilirsiniz.
SSL sertifikası üretme sürecinin bazı adımlarında sistemde root
yetkileri ile hareket etmeniz gerekir. Yetki artırımı gerektiği not edilen noktalardaki komutları root
kullanıcısı olarak veya sudo
vasıtasıyla root
yetkilerini alarak çalıştırmanız gerekmektedir.
Sertifika oluşturma
Uygun gördüğünüz bir konuma (tercihen kullanıcınızın ev dizinine) EFF'nin Let's Encrypt sertifikası üretmemizi sağlayan istemcisini klonlayarak işe başlayalım.
git clone https://github.com/certbot/certbot.git
Sırasıyla, certbot klasörüne girelim, istemcimizi çalıştırabilmek için gerekli izinleri verelim ve adresim.com için sertifika oluşturalım.
cd certbot
chmod +x certbot-auto
#root yetkisi ile çalıştırılmalı
./certbot-auto certonly --webroot -w /web/sitenizin/root/dizini -d adresim.com -d www.adresim.com
Bu aşamada sizden e-posta adresiniz ve kullanım şartlarını onaylamanız istenecek. Sorunla karşılaşmadıysanız sertifika oluşturma işlemini tamamlamış bulunuyorsunuz.
Nginx ayarları
Bir sonraki adım, Nginx ayarları. Bunun için Nginx sunucunuzun ayarlarına aşağıdaki örneği uyarlamanız ve Nginx'i tekrar başlamanız yeterli.
server {
listen 443 default_server ssl;
server_name www.adresim.com adresim.com;
ssl_certificate /etc/letsencrypt/live/adresim.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/adresim.com/privkey.pem;
}
Sertifika yenileme
Let's Encrypt sertifikaları, 3 ay gibi kısa bir yaşam süresine sahip olduğu için bunun bitimine yakın bir zamanda yenilenmeleri gerekiyor. Tahmin edebileceğiniz gibi bu işlem de çok basit.
./certbot-auto renew
Bu işlemi her 3 ayda bir yapmak yerine, bir cron görevi tanımlamak çok doğru bir karar olacaktır (Örnek 2 ayda bir çalışıyor). Bunun için aşağıdaki gibi bir tanım yeterli. Bu işlemin ardından Nginx tekrar başlatılacağı için bunu root
olarak yapmak gerekiyor.
0 0 1 */2 * /home/kullanici/certbot/certbot-auto renew && service nginx reload
Not: Bu rehber Ubuntu 16.04 üzerinde denenmiştir ancak tahmin ediyoruz ki diğer dağıtımlara/sürümlere de kolayca uygulanabilir.
Katkıları için @tongucyumruk'a teşekkürler.
emresaglam.com'un sertifika yenilemesini anlatmışsın :D
Bunları bir kaç hafta önce apache için yapmış birisi olarak çok mutlu mesut yaşıyorum.