AFAIK

Let’s Encrypt ve Zero SSL – SSL/TLS Sertifikası

Güncelleme:
Güvenlik bir web sitesi için önemli bileşenlerden biridir. Bu nedenle, özellikle oturum süresince kullanılan kullanıcı kayıtları gibi (formlar, veri işlemleri vb.) hassasiyeti yüksek bilgilerin işlenmesi ...
GÖRSEL

Güvenlik bir web sitesi için önemli bileşenlerden biridir. Bu nedenle, özellikle oturum süresince kullanılan kullanıcı kayıtları gibi (formlar, veri işlemleri vb.) hassasiyeti yüksek bilgilerin işlenmesi sürecinde SSL sertifikalarından, yani HTTPS gibi güvenli iletişim protokollerinden faydalanırız. Standart metin aktarım protokolü olan HTTP (Hyper Text Transfer Protocol) ile HTTPS (Secure Hyper Text Transfer Protocol) arasındaki fark HTTPS’nin HTTP protokolü üzerine SSL (Güvenli Soket Katmanı) protokolü eklenmiş olmasıdır. Bu sayede işlemler SSL ile şifrelenmiş bir şekilde gerçekleştirilir. Zaman içerisinde, doğan güvenlik sorunları göz önünde bulundurularak Google başta olmak üzere pek çok arama motoru basit bir web sitesi ve/ya blog dahi olsa SSL Sertifikası’nın öncelikli olarak değerlendirileceğini belirtti12. Hatta, SSL sertifikasına sahip olmayan bağlantılar tarayıcılarda “non-secure” (güvenli olmayan) olarak belirtilmeye başlandı. Bu güvenlik sürecine, web sayfasındaki tüm kaynakların (görseller, css ve js dosyaları) ilişkilendirmesini de dahil etmek gerekmekte. O halde web sayfamızı / uygulamamızı ziyaret eden kullanıcılara nasıl güvenli bağlantı sunabileceğimize bir bakalım.

Let’s Encrypt Nedir?

Comodo, GlobalSign, Entrust Datacard, DigiCert, GoDaddy, Symantec ve RapidSSL gibi pek çok SSL Certificate Provider tercihler arasında yer almakta. Elbette bu firmalar tarafından sağlanan sertifikalar özellikleri bağlamında ücretlendirilerek sunulmaktalar. Çoğu hosting şirketi kampanya dahilinde belirli bir süre için (genelde 1 yıl) ücretsiz SSL sertifikası sunabilmekte. Sonrasında, elbette belirli bir ücret karşılığında SSL sertifikasının yenilenmesi gerekmekte. Peki, ücretli seçeneklerin yanı sıra, basit web siteleri ve web uygulamaları için alternatif olarak değerlendirilebilecek bir seçenekler yok mu? Olmaz olur mu! Zero SSL ve Let’s Encrypt öne çıkan alternatiflerden ikisi. İlk olarak Let’s Encrypt’e bakalım.

Let’s Encrypt, 12 Nisan 2016 tarihinden bu yana kamu yararına çalışan İnternet Güvenliği Araştırma Grubu (Internet Security Research Group / ISRG) tarafından sağlanan bir servis ve Transport Layer Security (TLS) şifrelemesi için ücretsiz X.509 sertifikası dağıtan bir sertifika otoritesidir. Sertifika oluşturma, kurulum, doğrulama, imzalama ve yenileme gibi işlemlerin otomatikleştirilmesi şeklinde tasarlanan Let’s Encrypt ile World Wide Web (Dünya Çapında Ağ) sunucularının şifreli bağlantı kurmasını amaçlanmaktadır. Bu vesile ile, Mozilla ve Google gibi mevcut büyük web tarayıcısı girişimleri Let’s Encrypt’in kullanılabilirliğine güvenerek, şifresiz HTTP protokolünün kullanımını azaltmak için çalışmalar yapmaktadır3. İlk paragrafta da belirttiğim üzere, arama motorlarının güvenli bağlantıya sahip web sitelerine artı bir değer sunması da bu sürecin bir parçası olarak değerlendirilebilir. Elbette Let’s Encrypt belirli özellikler / sınırlar dahilinde kullanılabilmektedir:

  • Let’s Encrypt, yalnızca alan adları için, domain doğrulaması (DV) sınıfında sertifika vermektedir,
  • Kurum doğrulaması (OV) ve genişletilmiş doğrulama (EV) desteği yoktur,
  • ACME v2 ve wildcard sertifika desteği bulunmaktadır.

Let’s Encrypt kurulduğu yıl 1 milyon sertifika dağıtan servis geçen 3 yılın ardından, 14 Eylül 2018 tarihli bildirimde 129 milyon benzersiz alan adı için 380 milyon sertifika dağıttığını bildirmiştir4. Verilen sertifikalar crt.sh adresinden liste halinde görüntülenebilmekte. Ayrıca letsencrypt.org adresi üzerinden servis destekçileri görüntüleyebilir ve diğer tüm gelişmeleri takip edebilirsiniz.

Let's Encrypt Kullanım Oranı

Ek olarak, Firefox tarafından sağlanan verilere göre, 2016 yılında Firefox aracılığıyla gerçekleştirilen bağlantıların %40’ı güvenli iken, 2019 yılı itibariyle bu oranın %80’e ulaştığını da eklemekte fayda var4.

Peki, bu sertifikayı nasıl edinebilir ve web sayfamızda / uygulamamızda kullanabiliriz?

Let’s Encrypt İle İlgili Bilinmesi Gerekenler

Let’s Encrypt tarafından üretilen sertifikalar iOS ve Android gibi mobil işletim sistemleri, Chrome, Mozilla, Safari, Microsoft Edge ve Opera gibi moden tarayıcılar tarafından desteklenmektedir.

E-Ticaret siteleri için Let’s Encrypt SSL sertifikası önerilmemektedir. Bu gibi durumlarda, ödeme yöntemleri (bankalar, ödeme alt yapıları vb.) ek şifreleme yöntemleri için Rapid SSL, GeoTrust SSL veya Symantec SSL gibi sertifikalar tercih edilmelidir.

Let’s Encrypt 3 aylık periyotlar halinde sertifika sağlar. Bu sürenin sonunda bir işlem gerekmeksizin sertifika yeniler.

Let’s Encrypt sertifikası içinde özel ip belirtilmesine, dolayısıyla özel ip satın alınmasına gerek yoktur. Bir IP’de birden fazla SSL sertifikası kullanılabilir.

Ücretli SSL sertifikalarında, SSL kaynaklı güvenlik sorunlarına karşı garanti teminatı bulunur. Ancak Let’s Encrypt bu tür bir güvence bedeli sunmamaktadır.

Let’s Encrypt SSL Sertifikası Edinmek

Let’s Encrypt tarafından doğrulanan, geçerli bir sertifikayı Shell Access veya hosting provider üzerinden edinebiliriz. Pek çok hosting provider sunulan panel üzerinden (Örn. CPanel) kolay bir şekilde SSL sertifikası oluşturmayı ve yüklemeyi mümkün kılmakta. Web Hosting who support Let’s Encrypt sayfasında Let’s Encrypt desteği sunan sağlayıcıları görebilirsiniz.

CPanel - Let's Encrypt

Ancak, web sayfanızı Natro gibi bir hosting provider’da barındırıyorsanız panel üzerinden SSL işlemlerinin kaldırıldığını ve ücretli seçeneklere yönlendirileceğinizi görebilirsiniz. Elbette bu işlem çözümsüz değil. Eğer özel sertifika yükleme seçeneği hala mevcutsa kendimiz de sertifika oluşturarak import edebiliriz. Bu işlem için Certbot İle Let’s Encrypt Certificate / Key Oluşturma başlıklı yazımı incelemenizi öneririm.

Let’s Encrypt Sertifika ve Key Oluşturma İşlemleri

Cpanel üzerinden nasıl sertifika ve key oluşturabileceğime bakalım. Lets Encrypt SSL bağlantısına tıkladığınızda SSL/TLS Status sayfasına yönlendirilirsiniz. Bu sayfada, domainleri seçerek otomatik bir şekilde SSL sertifikası oluşturulması ve zamanı dolan sertifikaların yenilenmesi işlemlerini gerçekleştirebilirsiniz.

CPanel - SSL / TLS

Natro ve benzeri sağlayıcıların da dahil olacağı aşamada, yani sertifikayı kendimiz oluşturmak ve yüklemek durumunda kaldığımız zaman, öncelikle SSL/TLS sayfasını görüntülemeyeliyiz. Bu sayfa aracılığıyla Private Key’leri, Certificate Signing Request’leri, sertifikaları üretebilir, görüntüleyebilir, upload edebilir ve silebiliriz.CPanel - SSL / TLS

Bu aşamada SSL For Free ve ZeroSSL gibi servislerden faydalanabiliriz. Certbot ayrı bir yazı konusu olduğu için SSL For Free ile devam edeceğim.

SSL For Free ile sertifika oluşturmak için sslforfree.com adresini kullanacağız. Anasayfada yer alan form alanına güvenli bağlantı sunacağınız web adresini yazıp Create Free SSL Certificate butonunu tıklamanız yeterli olacaktır. Butonu tıklamanızın ardından sertifika www ve non-www olarak tanımlanır.

SSL For Free

Yönlendirildiğimiz sayfa üzerinden alanadı düzenlemesi yapabiliriz. Herhangi bir düzenleme gereksinimi söz konusu değilse sertifikanın oluşturulması için zorunluluk olan alan adı doğrulaması işlemlerine başlayabiliriz. Doğrulama işlemi için tercih edebileceğimiz 3 seçenek mevcut.

Automatic FTP Verification seçeneğini seçmemiz durumunda bizden FTP bilgilerini girmemiz istenecektir. Ardından, bilgilerin doğru olması durumunda FTP aracılığıyla sunucuda .well-known adında bir klasör, bu klasör içeriğinde acme-challenge klasörü ve onun içeriğinde de 2 adet doğrulama dosyası oluşturulur. Böylelikle doğrulama işlemi tamamlanır. Doğrulamanın sağlanmasının ardından Download SSL Certificate butonuna tıklayarak gerekli dosyaları edinebiliriz.

SSL For Free

Manual Verification seçeneği temelde Automatic FTP Verification’a benzer. Sadece FTP bilgilerini girmez, Manually Verify Domain butonunu tıklayarak doğrulama dosyalarını indiririz. Ardından, ilgili alanadı dizinine bağlanıp manuel olarak .well-known adında bir klasör ve bu klasör içeriğinde de acme-challenge klasörünü oluşturmalıyız. Klasörlerin oluşturulmasının ardından Download File #1 ve Download File #2 olarak belirtilen dosyaları indirmeli ve acme-challenge klasörüne yüklemeliyiz. Yükleme işleminin tamamlanmasının ardınan Download SSL Certificate butonu ile doğrulama işlemini gerçekleştirebiliriz.

Son seçenek ise Manual Verification (DNS). Bu seçenek ile TXT record üzerinden DNS doğrulaması yapabiliriz. Update DNS Records altında tanımlamamız gereken TXT kayıtları yer alacaktır. Bu bilgileri DNS sayfasından tanımlamamızın ardından doğrulama işlemini başlatabiliriz.

Hangi adım izlenmiş olursa olsun doğrulamanın sağlanamaması durumunda “Warning: Your verification URL is not returning the correct contents to our verification servers. The URL looks like it is blocking bots and which inadvertently blocks our servers from receiving the correct content. Contact your host, a professional developer or admin for further help with fixing it.” şeklinde bir hata alırız. Bu durumda ilgili doğrulama işlemini yinelememiz gerekmektedir.

Sertifika ve Key Yükleme

Let’s Encrypt

Doğrulama işleminin başarılı olmasının ardından artık sertifikamızı ve key’imizi sunucumuza tanımlayabiliriz. Download SSL Certificate tıkladığımızda Certificate Successfully Generated başlıklı sayfaya yönlendiriliriz. Certificate, Private Key ve CA Bundle kullanım için hazır. Download All SSL Certificate Files butonunu tıklayarak tüm dosyaları bilgisayarımıza indirebiliriz.

CPanel’deki TLS/SSL sayfası üzerinden artık ilgili tanımlama işlemlerimizi yapabiliriz. Upload a New Private Key alanında SSL for FREE üzerinden edindiğim Private Key değerini aktarıp Save butonunu tıklamam yeterli.

SSL Private Key

Ardından, aynı işlemi Certificate için de yapmalıyım. Tüm işlemlerimiz bu kadar! Unutmadan, bu sayfada yer alan Create Account butonunu tıklayarak SSL for FREE üyeliği gerçekleştirebilir, bu sayede sertifikanın durumu hakkında bilgilendirilmenizi sağlayabilirsiniz.

Zero SSL

Zero SSL, Let’s Encrypt’e göre çok daha basit bir kullanıma sahip. zerossl.com adresi üzerinden FREE SSL Certificate Wizard bölümüne geçerek hızlı bir şekilde Key ve CRS oluşturmak mümkün. Formdaki gerekli alanları doldurduktan sonra Next butonunu tıklamanız yeterli.

Zero SSL

Üretilen değerleri yine CPanel’de yer alan ilgili alanlara yapıştırmanızın (veya upload etmenizin) ardından HTTPS bağlantısını kullanmaya başlayabilirsiniz. ZeroSSL’i ayrıca komut satırı arayüzü aracılığıyla da kullanmak mümkün. Certbot kullanımından ayrıca bahsettiğim için bu kullanımı detaylandırmayacağım. Gerekli kurulum ve diğer detaylar için Crypt::LE Installation sayfasını inceleyebilirsiniz.

Kaynakça

  1. HTTPS as a ranking signal
  2. Google Starts Giving A Ranking Boost To Secure HTTPS/SSL Sites
  3. Let’s Encrypt, wikipedia
  4. Let’s Encrypt Growth
  5. Next steps toward more connection security
  6. Three years later, Let’s Encrypt has issued over 380 million HTTPS 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.