Burada web sunucumuza gelen http isteklerini https’e nasıl zorla yönlendireceğimizden  bahseceğiz. Http olan sayfalarda girilen bilgiler clent ile sunucu arasında clear text gider ve araya girebilen bir saldırgan kolayca bu bilgileri çalabilir. Ayrıca normal bir web sitesi içinde artık https sayfalar Google’da indexlenme açısından daha öndedirler.

Bu işlem için IIS üzerinde URL Rewrite modünün ön koşul olarak yüklenmiş olması gerekmektedir. Bu işlem için öncelikle ilgili modülü  indirip bilgisayarımıza kuralım. Download URL Rewrite (Dosyayı buradan indirebilirsiniz)

Kurulum işlemi bittikten sonra URL Rewrite modülünün IIS tarafında gözükmesi gerekiyor.

İşlemlere başlamadan önce IIS tarafında ki sertifka isteklerini tamamlamamız gerekiyor.IIS yönetim konsolu üzerinden Server Certificates kısmını açalım.

1. Adım) Sertifika İsteğinde Bulunma

Öncelikle Create Certificate Request linkine tıklıyoruz. Sertifika oluşturma isteği yapmamız gerekiyor bu sebeple; açılan penceredeki parametreleri dolduruyoruz.

  • Comman Name : Erişilecek URL bilgisini ifade eder. En önemli parametredir. DNS’te host A kaydının olması ön şartlardan birisidir.
  • Organization : Kurum veya Firma adını yazıyoruz.
  • Organization unit : Kurumveya Firmanın ilgili birim adı.
  • City/Location : Kurum veya Firmanın bulunduğu şehir bilgisi.
  • State/Provience : Kurum veya Firmanın bulunduğu bölgeyi yazıyoruz.
  • Country/region : Kurum veya Firmanın bulunduğu ülkeyi yazıyoruz.

Next diyerek işlemlere devam ediyoruz.

Burada istekte bulunulacak sertifika için şifreleme algoritmasının bit uzunluğunu belirtiyoruz. Defaultta 1024 gelmektedir ve bunu 2048 olarak değiştiriyoruz.

Bir sonraki aşamada bu istek için oluşturulacak dosyayı kaydeceğiz. Bu dosya sunucu için gerekli sertifkanın üretilmesi için kullanılacaktır.

Finish diyerek  Sertifika işlemlerini sonlandırıyoruz

  1. Adım) Sertifika İsteğinin Cevaplanması
    a)    Ortamdaki CA Server ile Sertifika İsteğini Tamamlamak

Sertifika eğer ki Global bir otorite tarafından onaylanmayacak ise ortamdaki CA server bu iş için ideal bir seçenektir. Sertifika isteğini cevaplamak için aşağıdaki adımları izliyoruz.

CA serverda öncelikle yetkili bir hesapla oturum açıyor ve Poweshell’i Run as Administrator ile çalıştırıyoruz

Oluşturmuş olduğumuz sertifika isteğinin bulunduğu .txt dosyamızı sunucunun masaüstüne kopyalıyor ve ardından Powershell’de şu komutu çalıştırıyoruz.

certreq -attrib “CertificateTemplate:WebServer” -submit naccert.txt

Açılan pencereye OK diyoruz. Oluşturulan sertifkayı kaydetmek için isim verip Desktop’a kaydediyoruz.
Bu adım ile artık sertifika isteğimize uygun olan sertifikayı oluşturduk. Artık bu sertifikayı sunucumuza yükleyebiliriz.

Not 1) Sertifka isteği Global bir otorite tarafından onaylanacak ise istek dosyamızı kurum yada firma yetkililerine vermeliyiz.

Not 2 ) Eğer kurum veya firmanın Wildcard bir sertifkası var ise bu işlemlere ihtyaç yoktur. Firmanın veya kurumun Wildcard sertifikasını direk Web sunucuya yükleyebiliriz. IIS için en ideal format .pfx tir. Bu tür sertifikaları bu formatta isteyiniz.

Not 3 ) GUI’ye erişmek için DNS’te bir Host’a kaydı açılması gerektiğini unutmayalım. Bu host’a kaydının mutlaka sertifika isteğinde girilen Comman Name olması gerekir. Yoksa sertifika uyarısı alırsınız.

  1. Adım) Oluşturulan Serfikanın IIS’e Kurulması

Öncelikle oluşturulan sertifikayı IIS sunucumuzun üzerine alalım. Daha sonrasında IIS’in yönetim konsolunu tekrardan açalım. Ve Server Certificates kısmına tekrar gelelim. Bu kez yapmamız gereken işlem Complete Certificate Request linkini tıklamak olacaktır.

Sertifikamızı seçiyoruz ardından Friendly Name veriyoruz. Açılan menüden hangi sertifikayı seçeceğimizi kolayca anlayabiliriz. Oluşturulan sertifikayı nerede depolayacağımız seçmemizi istiyor bir diğer adımda. Personal’da kalabilir. OK diyor ve işlemi sonlandırıyorum.

  1. Adım) Oluşturulan Sertifikanın Web Sitesine Atanması

Sertifka ile ilgili işlemlerimizi tamamladık. Bu işlem için tekrardan IIS yönetim konsoluna gidiyor  ve uygulamamızın olduğu Default Web Site’a sağ tıklıyoruz  ve Edit Bindings diyoruz.

Açılan pencerenden Add diyor ve IIS sunucumuza  80 haricinde dinleyip cevap vereceği https portu olan 443 portunu sertifika ile birlikte ekliyoruz.

Bu alandaki en önemli kriter Host name kısmı. Buradaki adın mutlaka sertika isteği oluşturulurken verilen Comman Name ile aynı olması gerekiyor. SSL certificate kısmından ise sertifikamı seçiyorum. Bir önceki adımda Friendly Name in burada karşımıza geldiğini görüyoruz. OK diyoruz ve işlemlerimizi tamamlıyoruz.

5.   Adım) http isteklerini https’e Yönlendirmek

Sertifika ile ilgili işlemleri tamamladıktan sonra artık arayüze giriş için gelen http isteklerini https e zorla yönlendireceğiz. Kişiler isteselerde artık http de giriş yapamayacaklar. http istekleri otomatik olarak https e yönlendirilecek.

Bu işlem için tekrardan IIS konsoldan URL Rewrite a gidiyoruz ve açılan pencereden bir kural oluşturuyoruz.

URL Rewrite a tıklıyoruz ve açılan pencereden Blank Rule u seçiyor ve OK diyoruz.

Ayarlarımız aşağıda göründüğü gibi olmalıdır.

  • Name : http to https
  • Match URL Pattern : (.*)
  • Conditions – Add
  • Condition input : {HTTPS}
  • Pattern : ^OFF$

OK diyerek Condition ını tamamlıyoruz.

Bu işlemlerden sonra Action’ın ne olacağını belirtmemiz gerekiyor.

  • Action Type : Redirect
  • Redirect URL : https://{HTTP_HOST}/{R:1}
  • Redirect type : See other (303)

URL Rewrite için gerekli işlemleri tamamlamış bulunuyoruz. Apply diyerek ayarlarımızı kaydediyoruz.

Tüm ayarlarımızın aşağıdaki gibi görünüyor olması gerekir.
İşlemleri http isteğini https’e yönlendireceğimiz site üzerinde yapıyoruz.

Eğer bu adımlarla uğraşmak istemiyor iseniz elle Web.Config dosyasına aşağıdaki satırları girebilirsiniz.

<rewrite>
<rules>
<rule name=”http to https” stopProcessing=”true”>
<match url=”(.*)” />
<conditions>
<add input=”{HTTPS}” pattern=”^OFF$” />
</conditions>
<action type=”Redirect” url=”https://{HTTP_HOST}/{R:1}” redirectType=”SeeOther” />
</rule>
</rules>
</rewrite>

İşlemlerimiz tamamlandı, artık uygulamamız veya web sitemize http üzerinden gelen istekleri https e direk zorlayarak yönlendirmiş oluyoruz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir