Bu yazımızda, Ubuntu / Apache web sunucularımızın, güvenli HTTPS protokolü ile iletişimini sağlamak üzere ücretsiz SSL sertifikası kurulması için yapılması gereken işlemleri adım adım ele alacağız.
SSL Nedir?
Kayıt yaptırmak, soru sormak, kullanıcı girişi yapmak gibi pek çok işlem için web formları sıklıkla kullanılır. Fakat web tarayıcınız (Chrome, Firefox, Safari vs.) ile site arasında güvenli iletişim sağlanmadıkça, gönderip aldığınız her veri 3. kişilerce okunabilecektir. Yani gönderip almakta olduğunuz veriler eğer gizli nitelik taşıyorsa, başkaları bu bilgileri ele geçirebilecektir. SSL (Secure Socket Layer) protokolü, işte bu iletişimi karşılıklı olarak şifreleyerek temel iletişim güvenliğini sağlamaktadır. Bu yazımızda Ubuntu web sunucunuzda SSL kurulumu, sertifikaların hazırlanması ve Apache konfigürasyonu anlatılacaktır.
Gereksinimler :
- Ubuntu 20.04 LTS
Burada anlatılanlar Ubuntu 20.04 için yazılmış olsa da 16.04 ve 18.04 sürümleri için de aynen uygulanabilmektedir. - Site yapılandırılması tamamlanmış Apache 2
- SSH console bağlantısı
- root ya da root yetkisinde bir kullanıcı
Adım 1 : root Yetkileri
Eğer SSH konsola root kullanıcısı haricinde bir kullanıcı ile bağlanmışsanız, öncelikle sudo -s komutu ile root yetkilerini almanız gerekiyor. Tabii ki kullanıcınıza bu yetkiler tanımlanmış olması gerek.
user@ubuntu:~$ sudo -s
[sudo] password for user:
root@ubuntu:/#
Adım 2 : cerbot Kurulumu
certbot kurulumu için öncelikle sistemimize repository ekleyeceğiz:
sudo add-apt-repository ppa:certbot/certbot
Onay için ENTER basın.
Sonrasında da certbot apache paketini kuruyoruz:
sudo apt install python-certbot-apache
Adım 3 : Firewall İzinleri
http requestlerinin varsayılan olarak 80 portunu kullandığı gibi https requestleri de default olarak 443 portunu kullanmaktadır. Bu nedenle eğer Ubuntu Firewall (ufw) kullanıyorsak bu port erişimi için izin verilmelidir.
ufw allow 443
Adım 4 : Domain Kontrolü
Sertifika kurma adımı öncesinde Apache üzerinde site kurulumlarının yapıldığını varsayıyorum. Yani http://www.alan_adiniz.com adresinin ulaşılabiliyor olması önemli. Bununla ilgili konfigürasyonu /etc/apache2/sites_available dizinindeki dosyalardan kontrol edebilirsiniz. Burada alan_adiniz.conf isminde bir dosya olmalı. Bu dosyayı favori editörünüz ile açtığınızda içinde ServerName ve ServerAlias satırlarında alan adlarınızı görüyor olmalısınız. Ben genelde ServerName olarak yalnızca alan adını koyarken ServerAlias olarak www eklenmiş adresi belirliyorum.
# /etc/apache2/sites_available/alan_adiniz.conf ServerName alan_adiniz.com ServerAlias www.alan_adiniz.com
Burada yapacağınız değişikliklerden sonra apache servisini reload etmeyi unutmayın
systemctl reload apache2
Adım 4 : Sertifikaların Kurulması
Sıra geldi sertifikaların oluşturulması ve kurulması işlemine. Yukarıda da belirttiğim gibi bu işlem öncesinde sitemizin çalışır ve ulaşılabilir olması gerekiyor. Aşağıdaki komutta eğer aynı sertifikaya birden fazla alan eklenecekse her birisi için "-d alan_adi.com" ile ekleniyor.
sudo certbot --apache -d alan_adiniz.com -d www.alan_adiniz.com
Komutun çalıştırılmasının ardından certbot sertifikayı oluşturup erişimini denetler. Herşey yolunda ise size http taleplerinin otomatik https e yönlendirilmesini isteyip istemediğinizi sorar. Buna istediğiniz gibi cevap verebilirsiniz.
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):
certbot, seçiminize göre apache konfigürasyonunu otomatik olarak yapacaktır.
Sonuç
İşlemin tamamlanmasının ardından /etc/apache2/sites_available dizininde alanadiniz-le-ssl.conf isimli bir dosyanın eklendiğini göreceksiniz. https talepleri ile ilgili ilave konfigürasyon ihtiyaçlarınızda bu dosyayı düzenleyebilirsiniz.
Böylece hem ücretsiz hem de tarayıcılarda hata vermeyen Let's Encrypt SSL sertifikasını sistemimize tanımlamış olduk. Tarayıcınızın önbelleğini temizledikten sonra test edebilirsiniz.
Görkem
Eki 18, 2020 20:06 AM
hala güvenli değil yazıyor cloudflare kullanıyorum ve cloudflare de ssl aktif edince 523 hatası veriyodu çözüm olarak sunucuya ssl kur dediler ama hala olmadı