HTTP Content Negotiation Kavramı

16 Mar

Content Negotiation işleyişi HTTP protokolüne özgü bir kavramdır. Anlam olarak tercüme edecek olursak, client ve server arasında yapılan bir içerik anlaşması veya müzakeresidir diyebiliriz.  Amacı, aynı URI ile farklı döküman türlerinde içerik sunabilmektir. Yani daha genel bir ifadeyle kaynak gösterim şeklinin kullanıcılar tarafından belirlenmesi diyebiliriz. Content Negotiation ile ilgili resmi dökümanlar buradaki w3.org sayfasında bulunmaktadır.

Content Negotaition 1.1
Content Negotaition 1.1

Kullanıcıların sunucu kaynaklarına ulaşmak için kullandıkları internet tarayıcıları kendi yetenek türlerine göre kaynak türünü seçmek için HTTP protokolünde belirlenmiş olan kurallara uygun talepte bulunurlar. Örneğin bir X tarayıcısı JPEG dökümanlarını işleyebilecek yeteneği yoksa fakat PNG dökümanlarını işleyebiliyorsa sorgu sırasında bu isteğini HTTP Accept Header (istek başlığı) bilgisi olarak sunucuya iletir. Örneğin Accept istek başlığı ile sunucuya kullanıcının medya türü tercihini Accept:image/png şeklinde belirtir.

Burada Accept istek başlıkları superset/subset biçiminde temsil edilmektedir. Örneğin Accep:image/png örneğinde “image superset’tir, “png ise subset’tir.

Örnek medya türleri için Accept Header bilgileri:

  • Accept: application/json
  • Accept: image/png
  • Accept: image/*
  • Accept: text/xml

Accept istek başlığında birden fazla tercih de belirtilebilir. Örneğin:

Accept: text/html, text/xml, image/jpeg, */*

Burada talebi gönderen taraf text/html, text/xml, image/jpeg ile açıkça belirtilmiş medya türlerinin tercih ettiğini, bunun yanında */* ile farklı medya türleri varsa onları da kabul edebileceğini  ifade etmektedir. Burada sunulan bir dizi medya türü vardır. Bu medya türlerine üstünlük katsayısı vererek öncelik tercihi yapmak da mümkündür. Örneğin:

Accept: text/html, text/xml, image/jpeg, */* ; q=0.01

Üstünlük katsayısı 1.0 ve 0.0 arasında bir değer alır ve “q” ile gösterilir. Burada text/html gibi üstünlük katsayısı belirtilmemiş türlerin katsayısı otomatik olarak 1.0 atanır. Ancak */* kalıbı 0.01 gibi düşük bir öncelik olarak belirlenmiştir.

İnternet tarayıcıları medya tiplerine göre kendi öncelik katsayılarını belirlerler. İnternet tarayıcıları kullanmadan fiddler gibi bir araç yardımıyla HTTP talepleri oluşturup, Header seçeneklerini kendimiz belirleyebiliriz.

Bir kaynaktan gelen dökümanın medya türü farklı olabileceği gibi dil seçimi de farklı olabilmektedir. Aynı şekilde Accept Header bilgisinde istediğimiz dili belirtebiliriz. Örneğin, Accept-Language: tr şeklinde.

İçerikle ilgili bir diğer Header bilgisi ise Content-Type şeklinde belirtilen ve kaynağa erişmek isteyen kullanıcının hangi medya türünde döküman istediğini bildiren içerik bilgisidir. Örneğin Content-Type:application/json şeklinde belirlenen bir Header bilgisi kullanıcının JSON veri istediğini belirtmektedir.

Günümüzde kaynak kullanımı sadece tarayıcılar tarafından değil, mobil uygulamalar tarafından da ağırlıklı olarak kullanıldığı göz önüne alındığında Content Negotiation kavramı özellikle REST servisler oluşturulurken dikkat edilmesi gereken konulardan bir tanesidir. Çünkü REST servisleri HTTP tabanlı çalıştıkları için servis geliştiriciler olarak HTTP dünyasını ve kurallarını iyi tanımamız gerekmektedir. Bu sayede neyi neden kullandığımızı bilerek ilerleyebiliriz.

.Net Framework Gelişim Tarihine Genel Bakış

7 Mar

Microsoft .Net Framework ile ilgili tarihi geçmişe bir göz atarak eskiden günümüze(2015) yani 4.5.1 framework sürümüne kadar nasıl bir gelişimin olduğunu genel hatlarıyla incelemeye çalışalım.

.Net Framework 1.0: 2002 yılında duyurulmuş ilk versiyonsdur. Visual Studio .Net geliştirme aracı ile birlikte sunulmuştur.

.Net Framework 1.1: 2003 yılında duyurulan bu versiyon ile birlikte Visual Studio 2003 geliştirme aracı da piyasaya sürülmüştür. .Net Framework 1.1 ile birlikte ilk defa Asp.Net Mobile control araçları denenmiştir. Ayrıca birden fazla ve farklı Framework sürümünü aynı bilgisayarda çalıştırabilme özelliği olan side-by-side özelliği eklenmiştir. Güvenlik ile ilgili yeni gelişmeler eklenmiştir.

.Net Framework 2.0: 2005 yılında Visual Studio 2005 geliştirme aracıyla birlikte duyurulmuştur. Bu framework ile birlikte Generic, Nullable tipleri, IPV6 desteği ve CLR 2.0 gibi önemli özellikler eklenmiştir.

.Net Framework 3.0: 2006 yılında duyurulmuş olup Visula Strudio 2005 üzerinden devam etmiştir. Bu sürüm ile birlikte WCF(Windows Communication Framework), WPF(Windows Presentation Framework), WF(Workflow Foundation) gibi yenilikler geliştiricilerle buluşturulmuştur. Bu yenilikler ile iletişim, sunum  ve iş akışları gibi ayrımlar ilk defa belirgin bir şekilde altyapı olarak yapılmış oldu.

.Net Framework 3.5: 2008 yılında Visual Studio 2008 gelitirme aracı ile beraber duyurulmuştur. LINQ ve Addin/Plugin Model gibi özellikler eklenmiştir.

.Net Framework 4.0: 2010 yılında Visual Studio 2010 il birlikte duyurulan bu sürümde bir çok yeni özellik eklenmiştir. Parallel Computing, Code Contracts, Lazy Initializations, Dynamic Language RuntimeIn-process side-by-side hostingBackground garbage collection ve CLR 4.0 şeklinde önemli eklemeler yapılmıştır.

.Net Framework 4.5: 2012 yılında Visual Sturio 2012 ile beraber duyurulmuştur. Paralel Programlama üzerinde yeni gelişmeler async/await yöntemi, asenkron işlemler, 64-bit platformlarda 2 gigabayt’tan (GB) büyük diziler için destek, Sıkıştırılmış dosyaların boyutunu azaltmak için Zip sıkıştırma işlevinde geliştirmeler yapılmıştır.

.Net Framework 4.5.1: 2013 yılında Visual Studio 2013 ile birlikte duyurulmuştur. Derlemeler için otomatik bağlama yeniden yönlendirme, .NET Framework güncelleştirmelerinden sonra daha hızlı uygulama başlatma, çok çekirdekli JIT geliştirmeleri ve ASP.NET uygulama askıya alma gibi ek performans artışları yapılmıştır. Sunucularda arka plan çöp toplama işlemi ile daha iyi performans sağlanmıştır.

Yazılım Proje Dizin Yapısı Oluşturmak

4 Mar

Projelerimizi oluştururken kendimize bir dizin standardı belirleyip, belirlediğimiz bu düzene sadık kalarak ilerlemek işlerimizi bir nebze kolaylaştıracaktır. Şu an için kodlama standartları gibi geleneksel bir standart yayınlanmamış olsa da programcıların yaygın olarak kullandığı bir dizin yapısı vardır.  Bu dizin yapısına göre kaynak kodlar, dış kaynak kütüphaneleri ve dökümantasyon gibi kavramlar ayrı ayrı tutulmak üzere belirlenmiştir.

Proje Dizin Yapısı
Proje Dizin Yapısı

Bir çok açık kaynak projeyi indirip incelediğimizde bu yapıya benzer bir dizin ağacına rastlarız. Bu ağaçta belirtilen kavramlar:

  • doc: Kod ile ilgili dökümanların bulunduğu dizindir. Geliştiricinin karşılaştığı sorunlar, çözümler, resimler, ip ucu olabilecek kısa yollar v.s bu dizinde bulunur.
  • lib: Proje için gerekli olan dış kaynak kütüphaneleri bu dizinde bulunur. Örneğin Nuget paketleri, Github üzerinden indirilip referans alınabiliecek başka kaynak kodlar.
  • src: Porjemizin kaynak kodunu barındırdığımız yer bu dizindir. Örneğin Visual Studio Solution veya Eclipse projesini bu dizine olşutururuz.
Proje ve Kaynak Kod
Proje ve Kaynak Kod Yapısı

Yukarıda lib dizininde dış kaynaklı kütüphanelerin bulunacağını belirtmiştik. Burada Visual Studio ile çalışanların Nuget paketlerini otomatik olarak lib dizinine indirebilmesi için gerekli bir ayar yapılmalıdır. Proje kaynak kod dizini içerisine yani yukarıda ki şemada src olarak adlandırılmış olan dizine nuget.config adında bir ayar dosyası oluşturulmalıdır . Bu ayar dosyasına şu satırları eklemek yeterlidir.

<settings>
    <repositoryPath>..\lib</repositoryPath>
</settings>

Artık Nuget Package Manager tarafından indirilen dosyalar doğrudan lib dizinine kaydedilir.

Bu yapıda oluşturulan çalışmaları versiyon kontrol sistemlerine derli toplu bir şekilde aktarmak mümkün hale gelmektedir.

NOT: Bu ayarlar Visual Studio 2013 üzerinde başarıyla denenmiştir. Sonraki çıkacak versiyonlarda bu ayarların değişme olasılığı vardır.

Blog temasında değişiklik yapıldı

14 Şub

WordPress tarafında default temalar arasında olan ve benim de uzun yıllardır kullandığım iNove temasını değiştirmeye karar verdim. iNove teması worpress resmi sitesinde hala yer almakta. Ancak güncelliğini yitirmiş durumda.

iNove Tema WordPress
Eski iNove Tema WordPress

Bu temanın yerine yine wordpress resmi sitesinde yer alan The Box adlı temayı kullanmaya karar verdim.

 

ThoughtWorks ve Martin Fowler İstanbul’daydı

14 Eyl

ThoughtWorks-Martin-Fowler-550Yazılım sektörünün önde gelen isimlerinden biri olan yazılım Martin Fowler, hepsiburada.com şirketinin sponsorluğunda düzenlenen “Contunious Delivery and Design”  isimli etkinlik için 10-11 Eylül tarihlerinde İstanbul’daydı.

Martin Fowler’ın üzerinde çalıştığı kurumsal mimari ve prensipler birçok yazılımcı tarafından kabul görmüş ve standart olarak uygulanır hale gelmiştir. Bu da Fowler’ı sektörde öne çıkarmıştır. Kendisi şu anda ThoughtWorks adlı bir yazılım danışmanlık şirketinde “Chief Scientist” pozisyonunda çalışmaktadır. Yazdığı kitaplar ve verdiği seminerlerde çok önemli konulara değinir. Bu yüzden İstanbul’daki etkinliğe katılmak istedim. Etkinliğe yaptığım ilk başvuruda yer olmadığı şeklinde olumsuz cevap gelmişti ancak 4 gün kala yer açıldı diye bir davetiye aldım ve katıldım.

Etkinlikte ThoughtWorks şirketinin İstanbul ofisinin açılmış olduğu duyuruldu. Aynı zamanda hepsiburada.com şirketi, çevik(Agile) süreçlerin ve sektördeki yenilikçi birçok deneyimin uygulanması için ThoughtWorks ile beraber çalıştığını duyurdu.

Fowler’ın sunumunda genel olarak çevik süreçlerin işleyişi üzerinde duruldu. Günümüzde artık yazılım ürünlerinin girdileri arasında insan iş gücü maliyetinin sadece yazılımı ilk oluştururken değil daha sonraki aşamalarda dönüşüm ve bakımların yapılmasının da dahil olduğu ortaya çıkmaktadır. Dönüşümün rahatça yapılabilmesi ve kaynakların israfını önlemek için çevik prensiplerin uygulanmasının gerekliliği vurgulanmıştır.

Uygulanan prensipler ve yenilikçi bazı teknik çözümlere başlıklar halinde değinilmiştir. Bunlar:

  • Continuous delivery
  • Continuous deployment
  • CAP Teorem
  • NoSQL
  • Microservices

Etkinlikte söz alan diğer konuşmacılar:

  • David Elliman
  • Emre Ekmekçi
  • Cengiz Han
  • İsa Göksu
  • Ben Kappler

Etkinlikte ayak üstü sohbetlerde çeşitli şirketlerin çalışanlarıyla sohbet imkanım oldu. Merak ettiğim bir numaralı konu olan çevik süreçlerin uygulanıp uygulanmadığıydı ve  sordum. Genel olarak aldığım cevap “Türkiş Agile” yapıyoruz  oldu. Yani işin başında prensipleri uygulamaya karar verip işler yetişmediğinde hadi bakalım eski düzene dön şeklinde devam eden bir sürecin uygulandığını öğrendim. Aslında farkındalığın olması bile iyi bir seviye. Bir gün mutlaka taşlar yerine oturacaktır. Martin Fowler’ın da dediği gibi yazılımda tecrübe çalışırken öğrenme şeklinde olur.

Dünyaca ünlü yazılım şirketlerin ülkemize ilgi göstermeye başlamasını şahsen çok önemsiyorum. Yıllar önce kurulan şirketlerin coğrafyamızda bu günlerde yüzünü göstermeye başlaması sanırım bir şeylerin değiştiğinin göstergesidir. Bugün Martin Fowler geldi. Kim bilir yarın Robert Cecil Martin, başka bir gün Kent Beck, Eric Evens, Erich Gamma gelir.

Blog Sayfam 3 Yaşında

19 Ağu

Bugün 19 Ağustos 2014. Bilgisayarımın tozlu arşivlerinde kaybolup gitmesin diye paylaşmayı amaçladığım yazılarımı yayınladığım sayfam www.bayramucuncu.com artık 3 yaşında. Geride bıraktığım üç yılda sayfamı takip eden okuyuculara teşekkürlerimi sunuyorum.

Gün geçtikçe artan ziyaretçi sayısı, yazılarımı her yönüyle iyileştirmeye itiyor beni. Türkçe dil kurallarına uygun, doyurucu, sade ve anlaşılabilir içerik oluşturmaya artık daha çok dikkat etmeye başladım. Her ne kadar dikkat etsem de sürç-i lisan eylediysek affola.

Önümüzdeki yılda yeni yazılarda buluşmak dileğiyle hoşçakalın.

Windows 8.1 Update Sonrası VMware Network Sorunu

8 Mar

Bu yazıda beni saatlerce uğraştıran bir VMware network sorundan bahsetmek istiyorum. Linux ile ilgili  çalışmalarımı yapmak üzere Windows 8 yüklü makinemde VMware üzerinde Ubuntu işletim sistemini kurmuştum. Bir gün, windows 8 için güncelleme uyarısını aldım ve 8.1 dahil olmak üzere bütün güncelleştirmeleri yükledim. Aradan bir kaç gün geçti ve Linux üzerinde bir deneme yapmam gerekti. Sanal makineye çalıştırdığımda bir de ne göreyim, ağ bağlantısı sağlanamıyor uyarısı! Sanal makine ayarlarından Network Adapter sekmesindeki ayarlar aynı duruyor fakat ağ bağlantısı bir türlü sağlanmıyordu.

Virtual Mechine Settings
Virtual Mechine Settings

Windows ağ bağlantı ayarlarında da bir anormallik olmadığını gördüm. Sanal makine ayarlarında denemedik varyasyon bırakmadım fakat nafile. Bir türlü sorunu gideremedim. En sonunda VMware ana penceresinden Edit > Virtual Network Editor penceresi gözüme çarptı.

Virtual Network Editor
Virtual Network Editor

Bu pencerede VMnet1 ve VMnet8 tanımlanmış durumdaydı. Ancak VMnet0 Bridge Type tanımlı değildi. Pencerenin en altında bulunan Restore Default düğmesine tıkladım ve devam ettim. İşlem tamamlandığında Virtual Network Editor penceresi aşağıdaki gibi oldu.

Virtual Network Editor
Virtual Network Editor

Yeniden sanal işletim sistemini çalıştırdığımda ağ bağlantı sorunundan kurtulduğumu gördüm. İnternet bağlantısını başarılı bir şekilde sağlamıştım.

Bu sorunu Windows 8.1 update ile ilişkilendirmemin sebebi, diğer iki bilgisayarda da windows 8.1 update sonrası aynı sorunu yaşamış olmamdı. Windows 8.1 kurduktan sonda VMware kurulumu yapanlar böyle bir sorun yaşamayacaktır. Tekrar hatırlatmalıyım ki bu sorun VMware kurulu makinede 8.1 güncellemesi yaptıktan sonra oluştu.

Umarım faydası dokunur.

Microsoft’un Çöpe Giden Yazılım Teknolojileri

25 Ara
  • Silverlight
  • WCF
  • WPF
  • Windows Forms
  • Web Forms

Microsoft teknolojilerinde son yıllarda önemli gelişmeler yaşanıyor. Takip etmekte zorlandığımız bu değişiklikler şüphesiz olması gereken şeylerdir. Yukarıda listelediğim teknolojiler, Microsoft’un  bir dönem parlayan yıldızlarıydı. Geçen zaman içinde yazılım dünyasında yaşanan evrim sonucu , Microsoft tarafında bir takım sorunlara çözüm bulmak ve bazı teknolojilerle rekabeti yakalayabilmek adına bir takım gelişmelere neden oldu. Yazılım dünyasındaki her yeni gelişme, karşımıza yeni bir ürün olarak çıktı. Gelişme ilerledikçe evrim, bir takım organların sonunu getirdi. Şunu da belirtmeliyim ki bu yazı Microsoft teknolojilerine karşı durmak için değil, bazı teknolojilerin zamanla yerini başka teknolojilere bıraktığını anlatmak amacıyla kaleme alınmıştır. Serbest pazar ortamında her firma ürününü ortaya koyar ve herkes istediği teknolojiyi dilediğince seçmekte özgürdür.

Silverlight

Adobe Flash, Java Flex v.b gibi client taraflı uygulamalara alternatif olarak üretilen zengin içerik ürünü Silverlight, mobil internet tarayıcılar tarafında yetersiz kalınca ve geliştiricilerin Javascript gibi tüm tarayıcılarda çalışabilen bir teknolojiyi tercih etmesiyle fişi çekilen teknolojilerden biri oldu. Ülkemizde ve diğer ülkelerde Silverlight düşkünü yazılımcılar için adeta bir hayal kırıklığı oldu. Çünkü bu gelişme birçok yatırımın güncelliğini yitirip zamanla çöpe gitmesi demekti.

WCF

Servis odaklı altyapı sistemleri için geliştirilen WCF teknolojisi SOAP ve RESTful servisler oluşturmak için bir altyapı sunmaktadır. HTTP tabanlı REST servislarinin yaygınlaşmasıyla ivme kaybeden ve durma noktasına gelen hatta bitti denilebilecek teknolojilerden birisi. WCF teknolojisi SOAP servisleri oluşturmak için ideal bir seçimdir. Ancak RESTful servisler oluşturma konusunda liderliğini WEB API teknolojisine kaptırmıştır. (Güncelleme: WCF servislerinin REST ve SOAP ayrımına vurgu yapıldı. 21.02.2015)

Windows Forms

Masaüstü programlama araçlarından Windows Forms teknolojisi ise WPF teknolojisinin gelmesiyle silikleşen teknolojiler arasında. WPF teknolojisini Windows Forms teknolojisine göre makul kılan özelliklerin başında View tarafı ile Model tarafının birbirinden ayrılmasını sağlamasıydı. Windows Froms, kod arayüzü ve grafik arayüzü ile çalışmaktadır. WPF ise kod arayüzü, grafik arayüzü ve grafik arayüzünü şekillendirebilen XAML arayüzü ile ortaya çıkmıştır. Bu durumda MVVM (Model-View-ViewModel) yazılım desenlerinin uygulanması kolaylaşmakta ve daha kolay yönetilebilir uygulamalar geliştirilebilmektedir.

WPF

Windows 8 ile birlikte bizi işletim sistemi düzeyinde şaşırtan Microsoft, XAML teknolojisini .Net framework tarafından işletim sistemi üzerine alarak bizi tekrar şaşırttı. Bu da demek oluyor ki artık masaüstünde artık WinRT teknolojisi yer alacak. Bu durumda WPF teknolojisi de yıkılmak üzere demektir.

Web Forms

Microsoft’un Web geliştirme tarafında sihirli çubuğu olan Web Forms teknolojisi de MVC uygulama mimarisine yenik düştmüştür diyebiliriz. Web Forms ile oluşturulmuş birçok popüler web sitesi bu günlerde MVC teknolojisine geçiş yapmaya başladı bile. Web Forms teknolojisinin hakkını yememek lazım ki çok sayıda popüler uygulamaya temel oluşturmuştur. Ancak MVC teknolojisinin iş birimlerinin birbirinden ayrılmasını sağlayan mimarisi ve bu sayede geliştirici hakimiyetini ön plana çıkarması ayrıca birim test yazmaya olanak  sağlaması zamanla onu popüler hale getirmiştir. Şahsen ben Web uygulamalarına direk MVC tarafından başlayanlardanım. (Güncelleme: 21.02.2015)

Microsoft gelişime, yeniliğe önem veren bir şirket. Ancak insanların yıllarca üzerinde çalışıp yatırım yaptığı teknolojilerin birden yok olması geliştiricileri ve şirket yöneticilerini sıkıntıya sokabiliyor. Bu durumda şu soru akıllara geliyor. Bu teknoloji de son bulursa ne yapacağız? Gelişim oldukça bir şeylerin sonu gelecek elbette.

Çöpe giden teknolojiler sadece Microsoft tarafıyla sınırlı değildir. Open source tarafında da çok fazla proje çöpe gitmiştir. Örneğin java tarafında da MVC yaygınlaşınca Serve taraflı bileşen teknolojiler pek tercih edilmez hale gelmiştir.

Bu durumda öngörülü olmak önem arz etmektedir. Spesifik teknolojiler yerine platform bağımsız teknolojilere eğilim göstermek her zaman faydalı olacaktır. Hangi programlama dili olursa olsun, yapılan iş genele hitap edecek şekilde tasarlanmalıdır. Bu sayede genişletilebilirlik(extensibility) ilkesi ile hareket etmiş oluruz ve hiç bir teknolojiye sıkı sıkıya bağımlı kalmayız.

SSL Güvenliği

9 Eyl

SSL Nedir?

SSL (Secured Sockets Layer), ağ üzerinde veri taşıma işleminin güvenli güvenli bir şekilde yapılabilmesi için Netscape tarafından geliştirilmiş ve standartlaşmış bir protokoldür.

SSL Sertifikası Nedir?

SSL sertifikası, bir kuruluşu tanıtan bilgileri, şifrelenmiş bir dijital anahtara bağlayan ufak veri dosyalarıdır. Bir SSL sertifikası üçüncü parti sertifika otoritsi tarafından üretilen ve şirketin web sitesinin o şirkete ait olduğunu doğrular. Gönderilen bilginin sadece doğru adreste deşifre edilmesini sağlar. SSL genellikle e-ticaret, bankacılık ve sosyal medya gibi veri güvenliğinin önemli olduğu sistemlerde kullanılır.

Bir web sayfasının kullanıcılar ile güvenli iletişim kurabilmesi için SSL sertifikasının WEB sunucusuna yüklemesi gerekmektedir. Sertifika yüklendikten sonra, WEB sayfasına https://www.domain.com şeklinde https protokolü kullanan bir adresten bağlanmak mümkündür. Güvenli bağlantı kurulduktan sonra WEB sunucusu ve WEB tarayıcısı arasındaki tüm trafik güvenli olacaktır.

WEB tarayıcıları, bir WEB ayfasının SSL güvenliğini, kullanıcılara bir kaç farklı yolla bildirir. Bunlar:

Genişletilmiş SSL Sertifika Doğrulaması (Extended Validation SSL Certificate)

Bu doğrulamayı yapan sitelere girdiğimizde adres çubuğunda aşağıdakine benzer bir görüntü ile karşılaşırız.

Adsız

Sarı ile işaretlenen bölgede kuruluş adınının adres çubuğunda gözükmesi, Extended Validation SSL olduğunu gösterir.

Adres çubuğunda kırmızı ile işaretlenen asma kilit ise sunucu ile kurulan bağlantının güvenli olduğunun işaretidir.

Standart SSL Sertifika Doğrulaması

Bu bağlantıda adres çubuğunda kuruluş adı gözükmez. Sadece güvenli bağlantının sembolü olan asma kilit gözükür.

Adsız2

Asma kilit işaretine tıkladığınızda kuruluşa ait sertifika bilgilerine ulaşabilirsiniz.

SSL Sertifikası Nasıl Temin Edilir?

Bir SSL sertifikasını sertifika sağlayıcı şirketlerden(Certificate Authority) temin edebileceğimiz gibi kendi bilgisayarımızda da oluşturabiliriz. Kendi bilgisayarımızda oluşturuduğumuz sertifikalar kullanıcı bilgisayarlar tarafından güvenilir sertifikalar olarak görülmez. Bunun sebebi sertifikayı oluşturanın güvenilir olup olmadığının bilinmemesidir. Ancak üçüncü parti sertifika otoriteşirketleri(CA)  tarafından temin edilen sertifikalar WEB tarayıcıları tarafından güvenilir sertifikalar olarak algılanır. Üçüncü parti sertifika otoritelerinin kök sertifikaları kullanıcı tarafında önceden yüklüdür. Tarayıcı ayarlarından yola çıkarak önceden yüklü kök sertifikaları görebilmekteyiz.

Sertifika Geçerliliği

Bir sunucuya yüklenen sertifika https protokolü üzerinden kullanıcı bilgisayarın WEB tarayıcısına gönderilir. Kullanıcının web tarayıcısı sertifikanın doğruluğunu denetler. Tarih ve zaman doğrulaması gerçekleştirir. Burda bir örnek vermek gerekirse, bilgisayarınızın tarih saat ayarlarını 100,200 sene geri veya ileri alın ve https kullanan bir siteye girmeyi deneyin. Bakalım ne ile karşılaşacaksınız.

Sertifika İsteği Oluşturmak

Bir sunucu üzerinde SSL sertifika isteği oluşturmak, Windows işletim sistemleri için IIS üzerinden kolayca yapılabilmektedir. IIS kullanıcı panelinden Sunucu Sertifikaları penceresinden sağ paneldeki Sertifika İsteği Oluştur sekmesinden sertifika isteği kolayca oluşturulabilir. Oluşturulan sertifika isteği, üçüncü parti bir sertifika otoritesine gönderilerek onaylı bir sertifika edinebiliriz.

SSL Sertifika İsteği
SSL Sertifika İsteği

Sertifika Yüklemesi

Edindiğimiz sertifikayı yine IIS üzerinden sunucuya Sertifika İsteğini Tamamla sekmesinden yükleyebiliriz. Sunucuya yüklenen sertifikayı bir web sitesine bağlamak için ise IIS üzerinde şu yolu izleyebiliriz.

Web Sitesine Sertifika Bağlama
Web Sitesine Sertifika Bağlama

Burada dikkat edersek bağlantı noktası(portu) olarak 443 numaralı bağlantı noktası verilmiştir. Çünkü https protokolü, 443 numaralı bağlantı noktası üzerinden iletişim kurabilmektedir.

Blog sayfam 2 yaşında

19 Ağu

19.08.2011 tarihinde web dünyasına açtığım blog sayfam artık 2 yaşında. 2 yıl önce kişisel bilgisayarımda metin dosyalarında biriken notlarıma her yerden ulaşabilmek ve onları unuttuğumda hatırlayabilmek için açtığım bir sayfadır blog sayfam. Zamanla gelen olumlu yorumlar bana yazılar yazmanın insanlara da faydalı bir aktivite olduğunu öğretmiş oldu. Bunun mutluluğunu da burada ayrıca paylaşmak istedim. Okuyuculardan gelen bir teşekkür bile içimde yeni yazılar yazma isteği uyandırıyor. İkinci yılı geride bıraktığım bu günlerde tüm okuyucularıma da teşekkürlerimi sunuyorum.