SSL sertifikası, bir alan adının o sunucuya ait olduğunu doğrulayan ve tarayıcıyla sunucu arasındaki bağlantıyı şifreleyen belgedir. Koruması yolda biter; sunucuya varıp kayda dönüşen bilgiye karışmadığı için karar, hangi sayfanızın ziyaretçiden ne aldığına bakılarak verilir. Tahlil.com’da hastanın web sitesine yazdığı değer sunucuya şifreli bir yoldan ulaşıyor, orada ise hekim panelinin okuduğu bir kayıt oluyor.
SSL sertifikası nedir, açılımı ne, ne işe yarar
SSL, Secure Sockets Layer’ın kısaltması ve bağlantıyı şifreleyen eski protokolün adı. Bugün aynı işi onun yerini almış olan TLS (Transport Layer Security) yapıyor. “SSL sertifikası” adı protokol değiştiği hâlde alışkanlıkla kaldı; ad değişse de belge aynı. Bu yazı da çoğu yerde kısaca “sertifika” diyor.
Belgenin içinde adresin adı ve sunucunun açık anahtarı yazılı. Belgeyi bağımsız bir kurum imzalıyor. Tarayıcı bu imzayı kendi güvendiği kurumların listesine karşı denetliyor ve imza tutarsa karşısındaki sunucunun o adın sahibi olduğunu kabul ediyor. Sertifikanın bir adrese verilmesi ve süreli olması bu yapıdan geliyor; ikisi de aşağıda kendi bölümünde ele alınıyor.
Sertifikanın gördüğü iş kimlik ve şifreleme olarak ayrılıyor. Kimlik tarafında adres çubuğundaki adın gerçekten o sunucuya ait olduğunu doğruluyor. Şifreleme tarafında tarayıcı ile sunucu arasında, yoldan geçen bilginin okunamadığı bir bağlantının kurulmasını sağlıyor. Tanımın ne işe yarar kısmı bu ikisinden ibaret; geri kalan her beklenti başka bir aracın işi.
HTTPS bu bağlantının değil, onun üstünden çalışan şeyin adı. Web sayfalarını taşıyan protokol HTTP; şifreli bağlantının üstünden çalıştığında HTTPS adını alıyor ve adres https:// ile başlıyor. “HTTPS nedir” sorusunun kısa cevabı bu: aynı sayfa, şifreli bir yoldan geliyor.
Adres çubuğunda bunun bir işareti de görünüyor. İşaretin biçimi tarayıcıya göre değişiyor; bazılarında kilit. Söylediği şey ise sabit: bağlantı şifreli kuruldu ve sertifika o an geçerli. İşaret sitenin içeriği ya da onu işleten hakkında bir şey söylemiyor.
Kendi sitemizin gizlilik metni bu tanımı okura verilmiş bir söz olarak yazıyor: site HTTPS üzerinden sunuluyor ve sunucumuzla tarayıcınız arasındaki trafik şifreleniyor. Teklif formu için aynı söz ayrıca yazılı. Bu yazı o sözün ötesine geçen bir güvence vermiyor; sertifikanın neyi kapsadığını anlatmak için tanım yeterli.
Sertifika sayfaya değil adrese verilir
Bağlantı kurulurken tarayıcı, adres çubuğundaki adı sertifikada yazılı adlarla karşılaştırıyor. Eşleşme sayfa düzeyinde aranmıyor, ad düzeyinde aranıyor. Aynı adres altında sunulan tanıtım sayfası, talep formu ve yönetim paneli bu yüzden aynı sertifikanın altında duruyor. Sayfa başına ayrı sertifika diye bir şey yok.
Okurun pratik sorusu da buradan cevaplanıyor: formum ya da panelim için ayrı bir sertifika gerekir mi? Cevap sayfaya bakarak değil, o sayfanın hangi adla açıldığına bakarak veriliyor. Panel sitenin adresi altında bir yolda açılıyorsa soru zaten cevaplanmış durumda. Ayrı bir adla açılıyorsa o adın kendi sorusu var.
Ad düzeyindeki karşılaştırmanın bir yan sonucu da var. www’lu ve www’suz ad sertifika için ayrı adlar sayılıyor ve ikisi sertifikada birlikte yazılı değilse biri uyarı alıyor; bir adın altında ayrı sistemlerin alt adreslerde nasıl yaşadığını alan adını anlattığımız yazıda açıyoruz.
Diotek’in sitesinde tanıtım sayfaları, keşif randevusu ve servis talebi için kurulan akışlarla aynı uygulamayı paylaşıyor; ziyaretçi hepsine tek bir yayın adresinden ulaşıyor. Genel kural bu düzene uygulandığında sonuç kendiliğinden çıkıyor: ziyaretçinin gezdiği sayfa ile talep bıraktığı form aynı adın altına düşüyor. Sertifika sorusu sayfa sayısı kadar değil, adres sayısı kadar soruluyor.
Kendi sitemizde de adres ile şema aynı dosyada karara bağlanıyor. Sunucu kurallarımız asıl ad dışındaki her hostu, www dahil, tek adımda asıl adrese gönderiyor. Yayından kaldırılan bir adresin kuralı da www ve HTTPS kurallarından önce yazılır; amaç, eski bir adresin hangi host ve şema biçimiyle gelirse gelsin tek adımda son adresine ulaşması. Sertifika bir ada verildiği için hangi adın asıl olduğu sorusu, sertifika sorusunun hemen yanında duruyor.
Kuralın sınırı da adreste. Form ya da panel ayrı bir alt adreste, ayrı bir sistem olarak yaşıyorsa o adresin kendi sertifika sorusu var ve “bir kez cevaplandı” varsayımı orada bozuluyor. Bunun adres tarafı alan adı yazısının konusu; burada sonucu bilmek yetiyor.
‘Güvenli değil’ uyarısı sertifikanın yokluğunu ya da bağlantının durumunu söyler
Tarayıcının adres çubuğuna yazdığı “güvenli değil” etiketi işletmenizi değerlendirmiyor, bağlantının o anki durumunu değerlendiriyor. En yalın durum sayfanın HTTP ile açılması: şifreli bağlantı kurulmuyor ve tarayıcı bunu etiketle bildiriyor. Bir tarayıcı üreticisinin kendi yardım belgesi, bu durumda site sahibine çözüm olarak siteyi HTTPS ile sunmasını gösteriyor.
Sertifikası olan bir sitede de aynı uyarı çıkabiliyor. Bir başka tarayıcı üreticisinin destek belgesi uyarının çıktığı durumları ayrı ayrı sayıyor. Sertifikanın süresi dolmuşsa ya da sertifika geçersizse uyarı geliyor. Sertifika geçerli olduğu hâlde bağlantı eski bir protokol sürümüyle kuruluyorsa da geliyor. Sertifika bir kez alınıp unutulacak bir belge değil; geçerliliği takip istiyor.
Aynı belge, uyarının ziyaretçiye ne söylediğini de yazıyor. Şifresiz bir sayfa şifre ya da kart bilgisi istiyorsa üretici kullanıcıya bu bilgiyi o sayfaya girmemesini açıkça söylüyor. Formunuza gelen ziyaretçi bu talimatı sizden önce tarayıcıdan alıyor.
Etiketin bugünkü kapsamı kademeli geldi. Yardım belgesini andığımız ilk üreticinin kendi duyurularına göre etiket önce şifre ve kart alanı taşıyan HTTP sayfalarına verildi. Ardından kullanıcının veri girdiği HTTP sayfalarına genişledi. Üretici hedefin bütün HTTP sayfaları olduğunu baştan yazmıştı; bugün etiket form aramadan, şifresiz açılan her sayfaya veriliyor.
İşletme için sonucu açık. Yalnız tanıtım sayfalarından oluşan bir site de HTTP ile açılıyorsa aynı etiketi alıyor; ziyaretçi etiketi formu görmeden, ilk açtığı sayfada görüyor. “Formum yok, sertifika bana gerekmez” düşüncesi bu yüzden tutmuyor. Gerekçe korunacak bir veri değil, tarayıcının etiketi.
Uyarının yönü de gevşeme değil, sıkılaşma. Etiketi kademeli genişleten üretici, HTTPS kullanmayan herkese açık bir siteye ilk girişten önce kullanıcıdan izin isteyen ayarı varsayılan yapacağını duyurdu.
Etiketin yokluğu da bir şey kanıtlamıyor. Etiket bağlantıya bakıyor; siteyi kimin işlettiğine ya da içeriğin doğru olup olmadığına bakmıyor. Adres çubuğu temiz bir site de yanlış bilgi verebilir.
Sertifika yolu şifreler, sunucuda duran kaydı korumaz
Şifreleme ziyaretçinin tarayıcısında başlıyor ve sunucuda bitiyor. Sunucu gelen veriyi çözüyor, uygulama onu okuyor ve kayda yazıyor. Bu andan sonra kayda ne olduğu sertifikanın alanı dışında: kaydı kimlerin açabildiği, hangi makinede tutulduğu, yedeklenip yedeklenmediği uygulamanın ve barındırmanın sorumluluğunda. “Sertifikam var, verim artık güvende mi” sorusunun dürüst cevabı bu yüzden parçalı: yolda evet, sunucuda ise sertifikanın söyleyeceği bir şey yok.
Tahlil.com, hastanın girdiği tahlil değerinin hekim panelinde kayıt olarak durduğu bir sağlık platformu. Hasta değerini web sitesinden kendisi giriyor. Hekim yorumunu panelde yazıp onaylıyor ve hastanın okuyacağı metne son şeklini o veriyor. Değer tarayıcıdan sunucuya giderken şifreli; sunucuya vardığında panelde bir kayıt oluyor ve hastanın sitesi, hekim paneli ve mobil uygulama da o kaydı okuyor. Adres çubuğundaki işaret bu kaydın sunucudaki hâli hakkında hiçbir şey söylemiyor. İşaret yolculuğu anlatıyor, varılan yeri anlatmıyor.
Örnek ayrımın neden önemli olduğunu da gösteriyor. Sağlık değeri gibi hassas bir bilgi için yolun şifreli olması gerekli ama yeterli değil. Değer yolda kısa bir an kalıyor, kayıtta ise uzun süre duruyor. Kaydın korunması ayrı kararlar istiyor ve bu kararlar sertifikayla verilmiyor.
Kendi teklif formumuza yüklenen belge, sertifika sayesinde değil sunucu tarafındaki bir kural sayesinde internete kapalı bir dizinde duruyor ve dışarıdan bir adresle açılamıyor; kuralın kendisini verinin hangi sunucuda durduğunu anlattığımız yazıda açtık.
“Peki kaydı kim koruyor” sorusunun bir yüzü de yedek. Sertifikanın bununla bir ilgisi yok; kaydın sunucuda korunmasının öteki yüzü olan yedek ve geri yüklemeyi ayrı bir yazıda ele aldık.
Ayrım ters yönde de geçerli. Sertifikalı bir sitede yanlış izinle bırakılmış bir dosya internetten okunabilir. Sertifikası olmayan bir sunucuda da kayıt doğru izinle kapalı durabilir. Bunlar ayrı araçların işi ve biri ötekinin yerini tutmuyor; adres çubuğundaki işaret yalnız birinin durumunu gösteriyor.
Hangi sayfada hangi bilgi yolda: sayfa sayfa bakın
Kendi sitenize bakarken işe yarayan birim sayfa türü. Her sayfa için tek bir soru soruluyor: ziyaretçiden sunucuya ne gidiyor? Sertifika yalnız o gideni yolda koruyor. Sunucuya vardıktan sonraki hâli ayrı bir sütunda duruyor. Satırlar sayfa türüyle adlandırıldı ki tabloyu kendi sitenize tutabilesiniz; portföyden karşılığı son sütunda, karşılığı olmayan hücre boş.
| Sayfa türü | Ziyaretçiden sunucuya ne gider | Sertifika yolda neyi korur | Sertifikanın cevaplamadığı soru | Portföyden karşılığı |
|---|---|---|---|---|
| Tanıtım ve katalog sayfası | Ziyaretçiden içerik gitmez; sayfa sunucudan ziyaretçiye gelir | Sayfanın sizin adresinizden geldiğinin doğrulanması ve yolda okunmaması | Sunucuda ziyaretçiye ait kayıt oluşmaz; yine de HTTP ile açılan sayfa tarayıcıda “güvenli değil” etiketi alır | |
| Talep formu sayfası | Mekân için istenen tarih, kurulu cihaz bilgisi, ziyaretçinin bıraktığı yazılı talep | Bu alanların yolda okunmaması | Operasyona düşen yazılı kaydın nerede durduğu ve kimin okuduğu | Diotek: keşif randevusu ve servis talebi |
| Sağlık değeri girilen sayfa ve yorumun yazıldığı panel | Hastanın girdiği tahlil değeri; hekimin yazdığı yorum ve onayı | Değerin ve yorumun yolda okunmaması | Panelde duran kaydın hâli; birden fazla arayüzün aynı kayda bakması uygulamanın işi | Tahlil.com: değer girişi ve hekim paneli |
| Kamerayla kod okutan ve konum isteyen sayfa | Okutulan kodun kimliği ve o anki konum | Web tarayıcısı kamerayı ve konumu sayfaya yalnız güvenli bağlantı altında ve izinle veriyor (koşulları mobil site yazısında anlattık); sertifikasız sayfa bu bilgiyi hiç alamaz | Kaydın hangi sahaya yazıldığı ve kimin okuduğu | Şantiye giriş çıkış kaydı: kodun kimliğini ve konumu telefondaki uygulamada tek kayıtta birleştiriyor |
| Kendi teklif formumuz | Form alanları ve yüklenen belge | Tarayıcı ile sunucu arasındaki trafiğin tamamı | Belgenin sunucuda nerede durduğu: dışarıdan adresle açılamayan dizin | Algoriel teklif formu |
Tabloyu sertifikanın koruduğu sütunla korumadığı sütunu yan yana tutarak okuyun. Satırlar aşağı indikçe ziyaretçiden giden bilgi ağırlaşıyor; sertifikanın yolda yaptığı iş ise her satırda aynı kalıyor. Satırdan satıra değişen şey sağdaki soru: kayıt nerede duruyor, kim okuyor.
Tanıtım satırı bu yüzden dikkat istiyor. Korunacak ziyaretçi verisi yok, yine de sertifika gerekiyor. Gerekçe tabloda değil tarayıcıda: etiket şifresiz açılan sayfaya form aranmadan veriliyor. Portföy hücresi de bilerek boş; bu satıra örnek uydurmak yerine boşluğu bırakıyoruz.
Diotek’in proje kaydı talep tarafında şunları yazıyor: mekân için tarih, kurulu cihaz ve telefon hattı meşgulken de bırakılabilen yazılı talep. Tablodaki talep formu satırı bununla sınırlı; sizin formunuzda başka alanlar olabilir. Satırı kendi alanlarınızla doldurduğunuzda sertifikanın yolda neyi taşıdığı ve sunucuda hangi kaydın oluştuğu aynı satırda görünür hâle geliyor.
Sertifika kurulunca bitmeyen iki iş: eski adresi yönlendirmek, süreyi takip etmek
Sertifikanın kurulması sitenin HTTPS ile açılabilmesini sağlıyor; HTTP ile açılmasını kendiliğinden engellemiyor. Eski bir linke tıklayan ya da adresi http ile yazan ziyaretçinin nereye düşeceği ayrı bir kuralla belirleniyor: HTTP ile gelen istek HTTPS adrese yönlendiriliyor ve bunun tek adımda olması bekleniyor.
Kendi sunucu dosyamızdaki kural yalnız bağlantı HTTPS değilse ve önde duran vekil sunucunun ilettiği şema başlığı da HTTPS demiyorsa yönlendiriyor. Koşullardan biri sağlanmazsa yönlendirme yapılmıyor. Başlığa da bakılmasının nedeni vekil arkasındaki kurulumlar: ziyaretçi şifreli bağlantıyla gelse bile istek sunucuya HTTP gibi görünebiliyor ve yalnız bağlantıya bakan bir kural o isteği de gereksiz yere yönlendirirdi.
Barındırma paneli zaten yönlendiriyorsa bu kuralın koşulu hiç sağlanmıyor ve kural çalışmıyor; doğru davranış da bu. Asıl risk yönlendirmenin birden fazla yerde kurulması. Panelde ayrıca bir “HTTPS’e zorla” ayarı açıksa ve sunucu dosyası da aynı işi yapıyorsa kurallar çakışabiliyor ve tarayıcı bir yönlendirme döngüsüne düşüyor. Kendi yayın belgemiz bu durumu sorun giderme tablosunda adıyla yazıyor ve çözümü de veriyor: biri kapatılır, öteki yeter. Şart olan kuralın her yerde bulunması değil, yönlendirmenin tek yerde kurulması.
Yönlendirmenin tarayıcıdaki tamamlayıcısı HSTS adlı yanıt başlığıdır; tarayıcıya bu adrese bir daha HTTP ile gelmemesini söyler, kendi dosyamızda yalnız HTTPS açıkken gönderilir; geri alınması uzun sürdüğü için ön yükleme seçeneğini de bilerek kullanmıyoruz.
Sertifikanın bir de süresi var. Süre dolduğunda tarayıcı belgeyi geçerli saymıyor ve site yeniden “güvenli değil” diye işaretleniyor. Dün sorunsuz açılan bir adres bugün uyarıyla açılabiliyor ve sitenin kodunda hiçbir şey değişmemiş oluyor. Yenilemenin hangi hesaba bağlı olduğu ve o hesaba kimin girebildiği bu yüzden işletmenin elinde yazılı durması gereken bir bilgi.
Kendi sitemizde sertifika, barındırma hesabında yayından önce bir kez sağlanan ön koşulların arasında ayrı bir satır. Doğrulaması tarayıcıda adres çubuğundaki işarete bakmak. Sertifikayı veren kurumun adı bu satırın konusu değil; konu sertifikanın açık olduğunun görülmesi.
Portföydeki projelerde yenilemenin hangi hesapta durduğunu bu yazıda anmıyoruz. Sizin işinizde ise bu, teslimden önce yazılı cevap alması gereken bir soru.
Sertifika sorusu sayfa planıyla birlikte sorulur
Teklif masasında sorulacak şey “SSL dahil mi” değil. Sorulacak olan, hangi sayfada hangi bilginin yolda olacağı ve o sayfanın hangi adreste yaşayacağı. Bu cevaplar birlikte sertifikanın kaç kez ve nerede sorulacağını belirliyor.
Form tanıtım sayfalarıyla aynı uygulamada ve aynı adreste kurulduğunda sertifika sorusu bir kez cevaplanıyor. Sonradan eklenen bir form da hazır adrese düşüyor ve yeni bir ad getirmiyor. Diotek’te talep akışları da tanıtım sayfalarıyla aynı uygulamada çalışıyor; ziyaretçi her talebi siteden, kendi akışında açıyor. Akışların neden baştan ayrı kurulduğu başka bir sorunun cevabı ve onu randevu ile servis talebinin ayrımını anlattığımız yazıda ele aldık.
Sınır da burada. Form ya da panel sonradan ayrı bir sistemde, ayrı bir alt adreste açılırsa sertifika sorusu yeniden soruluyor. Bu kötü bir karar olmak zorunda değil; yalnız planda görünmesi gereken bir karar.
Tanıtım sayfalarıyla talep formlarını tek uygulamada tutan iş, kurumsal web sitesi hizmetimizin konusu. Formun, panelin ve sunucu tarafındaki kuralların aynı uygulamada yazıldığı daha geniş işler ise web yazılım hizmetinde duruyor.
Sitenizi yaptırmayı ya da yeniden kurdurmayı düşünüyorsanız teklif formunda firma bilgileri adımına mevcut adresinizi, proje adımına sayfa listenizi yazın. Her sayfanın yanına ziyaretçiden ne alacağını eklediğinizde sertifika sorusu sayfa sayfa değil, adres düzeyinde konuşulur.