Sunucu Güvenliği : SSL – Secure Sockets Layer

Zamanında özellikle banka poslarini kullandığım websitelerinde başımı bir hayli ağrıtmıştı SSL işleri. O zamanlar bankalar ( şimdi öyle mi bilmiyorum ) özellikler kredi kartı bilgilerinin alındığı sayfada kullanmanızı istiyorlar, sitenin geneli yerine sadece bu sayfayı kontrol ediyorlardı. Tabi bu kontrol o browserda aşağıdaki resmi görmekten ibaretti diye düşünüyorum.

ssl

Browser adres kısmında o sayfanın o sayfada SSL kullanıldığını ve kullanılmakla kalmayıp SSL’in sağlıklı çalıştığını bu şekilde anlıyoruz. Peki özellikle alışveriş sitelerinde gördüğümüz ve nihayetinde artık Google tarafindan tüm sitelerin kullanmasını tavsiye ettiği bu SSL nedir ?

SSL siteniz ile kullanıcılar arasındaki veri alışverişini sifreleyerek dışardan erişimler olursa bu verinin okunmasına engel olmak için kullanılan bir standart. Bu biraz yaptığı ise göre SSL için aslında süslü bir cümle. Çünkü SSL sadece bunu yapıyor. Siteniz için bunun da ötesinde bir güvenlik sağlamıyor. Hala XSS veya CSRF aciklariniz sitenizde olabilir. Hala acik olmamasi gereken portlariniz ornegin UFW gibi bir firewall ile kontrol edilmiyor olabilir.

Peki SSL ubuntu temelli bir sunucu da apache2 bir websitesine nasil kuruluyor?

Bunun için eskiden ( 2007-2008 yıllarından söz ediyorum ) SSL sertifikası sağlayan bir firma bulup, sitenize ait bilgileri bu siteye girerek belirli bir ücret karşılığında sertifika dosyalarını alıyordunuz. Sonra da shared bir hosting ise Cpanel veya plesk kısmından dosya ve bilgileri girerek SSL’i aktif ediyordunuz. Para vermenizin nedeni browserlarin bu ücretli SSL sertifikalarını ( özellikle IE ) tanıması gerekmesiydi. Diğer türlü “tam da güvenemediğim bir SSL sertifikası var ama girmek ister misin bu siteye” tadında bir uyarı görüyordu ziyaretçi. Bu da güvenli göstermeye çalıştığınız siteyi tam tersi kullanıcıya durduk yere sanki güvensiz gibi gösteriyordu.

Şimdi işler biraz daha ucuz ( aslında artık bedava ) ve kolay. Chrome vb. yaygın browserlar ücretsiz verilen sertifikaları da tanıyor. Benim tavsiye edeceğim ( ömrü uzun olsun ) Certbot  sitesidir.

Certbot seçtiğiniz sunucu yazılımı ve işletim sistemini seçtikten sonra sizi bir kurulum ekranına yönlendiriyor. Bu ekranda sisteme nasıl kuracaginiza dair talimatları bulabilirsiniz. Bayağı basit bir kurulumu var ubuntu sistemler için. Ben de zaten apache2 ve ubuntu 16.04 LTS ile denedim. Gayet memnun kaldım. Çünkü sizde sertifika kurulumu yaparken göreceksiniz ki apache virtualhost dosyalarına bile müdehale edip sertifika satırlarını iliskilendirmesini yapıyor bu terminal uygulaması.

Bu noktada WordPress içine SSL kuracağım nasıl yapacağım diyenler shared hostinglerinde ssh erişimi olmadığı için uzuleceklerdir. fakat hepsini biraz linux öğrenip kendi vpslerini örneğin digitalocean üzerinde açarak pratik yapmaya davet edebiliriz. aylık 5 dolar ile eskiden çok daha pahalıya patlayacak tecrübeyi edinebilirsiniz. Gerçi sadece blog yazıyorsanız bana göre google blog servisini kullanın çok daha iyi.

Kurulumu talimatları izleyip yaptığınızı ve kurulum sırasında sorulan redirect opsiyonu ile https olmayan adreslerinizi yonlendirdiginizi varsayiyorum. Peki el emeği göz nuru yaptığınız sitede hala çalışmıyorsa SSL neden ? Büyük ihtimalle yazdığınız kod içerisinde https olmayan medya ( image, object, video  …) dosyalari cagriyor olmanizdan. Evet SSL veri transferinin tamamini sifreleyerek browsera gondermek istedigi icin sizde bu medya cagrilarini http degil https ile cagirmalisiniz. O zaman sorununuz çözülecektir. WordPress gibi hazır yazilimlarda ve symfony, laravel gibi iyi frameworklerde ( kurallara uyduysaniz ) bunu yapmak çok basit zaten. Bir stackoverflow aramasina bakar.

Bu yazıda SSL’in nasıl çalıştığına ve nasıl vps, dedicated sunucunuza kurabileceginize değindim. Fakat unutmayın ki SSL demek güvenliğin tamamını sağladınız demek değil. Sunucu güvenliği ile ilgili diğer yazılarıma da mutlaka bakın.

Bir de her SSL ile ilgili türkçesini bulamadığım su haber ile ilgili sizi haberdar etmis olayim. Zira CloudFlare DDos forumlarda ataklarindan korunmak için ve pratik SSL kullanmak için pek övülmekte.

Herkese iyi çalışmalar…