Merhaba dostlar,

Teknik konulara tam gaz devam ediyoruz. Bu ara fena halde SSL'e takmış durumda olduğumdan bu işin Nirvana'sına çıkmadan bıkmayacağım sanırım. :)

Bugün anlatacağım konu SSL serüveninin son halkası olan ve geçtiğimiz Ağustos ayında yayınlanan sürümüyle kullanılabilir hale gelen yeni SSL/TLS sürümü ve Apache üzerinde nasıl etkinleştirebileceğimiz olacak. :)


Peki ne farkı vardı halihazırda kullandığımız 2008 yapımı TLS 1.2'nin?

Esasında el sıkışmalar sırasındaki bazı aşamaları hızlandırdığı ve kaldırdığı için daha hızlı bir TLS bağlantısı kurabiliyoruz.  

TLS 1.2 ve TLS 1.3 El Sıkışma Hızları
TLS 1.2 El Sıkışma Aşamaları
TLS 1.3 El Sıkışma Aşamaları

Şu an kullandığımız çoğu Web sayfası TLS 1.2 kullanıyor fakat ilerleyen yıllarda TLS 1.3'e hızlı bir geçiş yaşayacağımızı düşünüyorum. Halihazırda kullandığımız TLS 1.2'yi yaklaşık 10 yıldır güvenle kullanıyorduk. TLS 1.3'ün ise 20 yıl güvenli bir şekilde kullanılacağı planlanıyor.

Performansı söz konusu olduğunda TLS ve şifreli bağlantılar web sitelerine her zaman ek yük ekliyor. TLS 1.3, TLS false start ve Zero Round Trip Time (0-RTT) özellikleriyle TLS 1.2'nin önüne geçiyor.

Daha güvenli olmasının bir sebebi de eski şifreleme metotlarını kaldırmış olması tabii.

Artık SHA-1, RC4, DES, 3DES, AES-CBC, MD5 gibi zayıf şifreleme algoritmaları hayatımızda olmayacak.

Peki TLS 1.3'ü kullanmamız için ne gerekiyor diye soracağız. Bunun cevabı aslında çift taraflı. Yani girdiğimiz web sunucunun ve bilgisayarımızda kullandığımız tarayıcının bunu desteklemesi gerekiyor. Chrome, Firefox gibi modern tarayıcıların son sürümleri bunu destekliyor, Edge ile deneme şansım olmadı, Safari ise destekliyor ama varsayılan olarak aktif edilmemiş. Manuel olarak aktif etmemiz gerekiyor. Ufak olan kodu da şuraya ekleyeyim.

sudo defaults write /Library/Preferences/com.apple.networkd tcp_connect_enable_tls13 1

Bu kadar girizgah yeterliyse hadi kendi Apache sunucumuzda TLS 1.3'ü aktif edelim.


1) Apache Sürümünü Güncelleme

Apache sürümümüzü kontrol ediyoruz.

apache2 -v

Sürümümüz 2.4.29 fakat TLS 1.3, Apache 2.4.36 ile destekleniyor. Hemen "apt update, apt upgrade" işine girişmeyin. Neden olduğunu bilmiyorum ama son sürüm bu olarak görünüyor. Biz de farklı bir repo ekleyerek güncellememizi yapacağız. Aslında böyle hiç bilmediğim repo eklemeyi de sevmiyorum ama tar.gz ile uğraşmak istemediğim için böyle bir yolu tercih ettim.  :)

sudo add-apt-repository ppa:ondrej/apache2
sudo apt update ; sudo apt upgrade

Y deyip devam ediyorum.

Apache'miz şu an TLS 1.3 destekleyen güncel sürümde.


2) Konak (Host) Konfigürasyonu

Apache'nin konfigürasyon dosyalarının bulunduğu dizine uçuyorum.

cd /etc/apache2/sites-available

TLS 1.3 ile yayın yapmasını istediğim SSL konfigürasyonuna giriyorum.

Şimdi içeriye daha önce "SSLProtocol" etiketini aşağıda verdiğim gibi düzenliyorum. Eğer bu etiket hiç yoksa ekleyebilirsiniz.

SSLProtocol         -all +TLSv1.2 +TLSv1.3
Önceki konfigürasyonum
Yeni konfigürasyonum

Apache'yi yeniden başlatıp durumu kontrol ediyoruz.

systemctl restart apache2

3) Mutlu Son :)

Referans ve Okunması Gereken Kaynaklar:

An Overview of TLS 1.3
Introducing Zero Round Trip Time Resumption (0-RTT)
TLS 1.3 - Enhanced Performance, Hardened Security


Evet dostlar, bugün sizlerle "TLS nedir, ne gibi avantajlar sağlar ve nasıl kullanılır?" konularını anlatmaya çalıştım. Makaleyi aşağıdaki butonlardan ve yorum kısmından  oylamayı ayrıca aklınıza takılan yerleri bana yazmayı unutmayın. Herkese iyi çalışmalar dilerim. :)