Let’s Encrypt Nedir?
Let’s Encrypt web sunucularının Http yerine Https kullanılmasını yaygınlaştırmak amacıyla SSL/TLS sertifikaların ücretsiz olarak üretilmesi ve dağıtılması amacıyla kurulmuştur. Sektörün önde gelen şirketleri bu servise sponsor olarak devamlılığını sağlamaktadır.
Bu yazıda Ubuntu 18.04 & Django 3 kullanılmıştır ve adımlar Pardus işletim sistemi üzerinde uygulanmıştır
Sunucu üzerinde hali hazırda kurulu bir Nginx olduğu varsayılmıştır
Öncelikle buradan Let’s Encrypt’i sunucuda otomatik çalıştırmamızı yarayacak ‘Cert Bot’ yazılımını yüklemek için official web sitesine gidiyoruz.
Ardından sunucumuzun çalıştığı programı ve üzerinde bulunduğu işletim sistemini seçiyoruz.
Karşımıza otomatik olarak kurulum adımları çıkacaktır.
Ardından ben Linux kullandığım için ssh servisini kullanarak sunucuma bağlanıyorum fakat siz Windows kullanıcısı iseniz PuTTY ile sunucunuza bağlanabilirsiniz.
Ve sırasıyla Cert Bot kurulumu için karşımıza çıkan komutları çalıştırıyoruz.
4. adıma geldiğimizde:
$ sudo certbot — nginx
Bizden sunucumuz üzerinde hangi web sitelerine kurulum yapılmasını istediğimizi soracak. Dilediğinizi belirttikten sonra otomatik olarak cert bot kurulumu tamamlanacaktır.
Ardından nginx konfigürasyon dosyası için:
Ve sitemiz için konfigürasyon dosyası bu şekilde olmalıdır
Ardından dosyamızı kaydedip çıkıyoruz. Proje kök dizinimizdeki settings.py veya local settings dosyamızı açıp aşağıdaki kodları ekliyoruz.
SECURE_PROXY_SSL_HEADER = (‘HTTP_X_FORWARDED_PROTO’, ‘https’)
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
local_settings.py dosyamızın son görünümü bu şekilde olacaktır
Ardından
systemctl restart nginx
komutu ile nginx’i yeniden başlatıyoruz ve SSL sertifikamız hayırlı olsun
OPSİYONEL
Eğer DNS yönlendirmelerinizi Cloudflare üzerinden yapıyorsanız, web site yönetim panelinden SSL/TLS tab’ı içerisine gelerek;
Default olarak Flexible olarak ayarlanan encryption modunuzu Full yapmanız gerekmektedir. Bunun sebebi ise Cloudflare’in Flexible modunda kendi yüklediği SSL sertifikasını kullanıyor olmasıdır. Fakat biz kendi SSL sertifikamızı yüklediğimiz için Cloudflare’a kendi yüklediğimiz SSL sertifikasını kullanmasını söyledik.
Not: Bütün istekleri https üzerinden yapmasını söylediğimizde nginx içerisinde ufak bir konfigürasyon yapmamız gerekli. İlgili projenin nginx conf dosyasının en üst satırına bu blok yazılmalıdır. HTTP ile gelen istekleri Otomatik HTTPS’e redirect edecektir.
server {
listen 80;
listen [::]:80;
server_name domaininiz.com www.domaininiz.com;
return 301 https://domaininiz.com$request_uri;
}
Eğer subdomainlerimiz için de ssl kurmak istersek;
sudo certbot -d domain.com,sub.domain.com,sub.domain.com,sub.domain.com,www.domain.com — expand
Umarım faydalı olmuştur, iyi çalışmalar dilerim.