Citrix NetScaler cihazı üzerinden bir SSL web sitesinin yük dağıtımının yapılması için gerekli adımları bu makalede ele alacağız. Öncelik ile Bir web sitesinin SSL olarak hizmet verebilmesi için elbette sertifika ihtiyacı olacaktır. Gerçek hayatta sertifikanın temini için Verisign, GlobalSign, Thawte gibi ticari sertifakasyon otoriteleri kullanılır. Biz test için kendi lokal Microsoft sertifkasyon yapımızı kullanacağız. Sertifkasyon yapısı bir offline Root ve onun altında konumlandırılmış bir Subordinate CA’den oluşmaktadır. Öncelik ile test için kullanacağımız web sitesinin bulunduğu sunucu üzerinde IIS konsolunu açıp bir sertifika isteği üreteceğiz. Bunun için Sunucu ismi üzerine gelip sağ taraftaki menüden IIS başlığı altında bulunan Server Certificates ikonu tıklanır. Açılan ekranda mouse ile açılan menüden Create Certificate Request seçeneği seçilir (Resim-1).
Resim-1 Create Certificate Request seçimi
Seçeneğin seçimiyle oluşturulacak istek için gerekli bilgilerin girileceği bir ekran açılır. Burada sertifika bilgileri girilir. Common Name kısmına yazacağınız isim önemlidir. Çünkü buradaki isimden farklı bir isimle sitenin çağrılması durumunda internet gezgininde sertifika uyarısı alacaksınızdır. Bu sebep ile buraya dış dünyada kullanılacak ismi yazmanız gerekmektedir (Resim-2).
Resim-2 Sertifikasyon bilgilerinin girilmesi
Bilgilerin girilmesinin ardından oluşturulması istenen sertifikanın CSP ve uzunluğu ile alakalı bilgileri girmek gerekecektir (Resim-3).
Resim-3 Sertifika bilgileri
Bu bilgilerin de girilmesiyle sertifka isteğimiz tamamlanmış olacaktır. Ve son işlem olarak isteğin bir dosya olarak kayıt edilmesi için uygun disk lokasyonunu göstermek gerekecektir (Resim-3, Resim-4).
Resim-3 İsteğin kayıt edilmesi
Resim-4 İstek Dosyasının isimlendirilmesi
Dosya için disk üzerinde lokasyonu gösterip isim sağlandığında kayıt işlemi bitecektir. Kayıt edilen dosyanın içeriği Resim-5’te görülen yapıda olacaktır. İlerleyen adımlarda bu içerik kopyalanarak sertifika isteyeceğimiz otoriteyle paylaşılacaktır.
Resim-5 Sertifika isteğinin içeriği
Oluşturulan sertifika isteğiyle bir sertifka alınması için kurulu olan CA yapımızı kullanacağız. Makalenin başında belirtildiği gibi dış dünya ile paylaşılacak bir site için ticari sertifka otoriteleri kullanılmalıdır. Sertifika sağlayıcı sunucumuzun web sitesi açılır. Default olarak http://sunucuismi/certsrv biçimindedir (Resim-6).
Resim-6 Sertifika otoritesinden sertifika isteme
Açılan sitede Request a certificate linki tıklanır.
Resim-7 Oluşturulan isteğin gönderilmesi
Gelen ekranda (Resim-7) direk olarak bir sertifika istenebileceği gibi daha önce hazırlamış olduğumuz isteğin kullanılabileceği seçenekler sunulur. Bu ekranda alttaki link tıklanarak hazırlamış olduğumuz isteğin sertifika otoritesine gönderilmesi sağlanır.
Resim-8 Sertifika isteğinin kopyalanması
Resim-8’de gözüken Saved Request üzerine daha önce hazırladığımız istek dosyasının içeriği kopyalanır (Resim-5).
Resim-9 Sertifikanın oluşması
İsteğimiz Windows CA tarafından işlenerek sertifika oluşturulur. Base 64 encoded olarak üretilen sertifika download ederek web sitemizin bulunduğu sunucuya kopyalanır. Oluşturduğumuz sertifikayı web sunucuya/sunuculara kopyalayıp import etme işlemini gerçekleştireceğiz. Import işlemi için Certificates MMC konsolu kullanılabileceği gibi komut satırından da yararlanılabilir. Burada tavsiye edeceğimiz husus sertifka üzerine tıklayarak import yapılmamasıdır (Resim-10).
Resim-10 Komut satırından sertifikanın import edilmesi.
Resim-11 İmport edilmiş sertifikanın görüntülenmesi
Import işleminden sonra istenirse sertifikanın varlığı MMC konsoluyla teyit edilebilir. Böylece import işleminin başarılı bir şekilde tamamlandığı görülebilir (Resim-11).
Resim-12 Sertifikanın Site ile ilişkilendirilmesi
Web sunucuya import edilen sertifikanın sunucu üzerindeki siteyle ilişkilendirilmesi için IIS konsolunda site üzerine gelip sağdaki Action bölmesinden Bindings kısmı seçilir. Açılan pencerede Add butonu tıklanarak HTTPS seçilir. Bu seçimle gelen pencerede daha önce import edilen sertifka SSL Certificate bölümünde seçilir. Bu seçimden sonra artık web sunucusu siteyi SSL olarak da sunabilecektir.
Asıl konumuz olan Citrix ile bir SSL sitenin load balance edilmesi işlemi için gerekli arka/alt yapı hazır duruma geldi. Artık Citrix Netscaler ile bir SSL sitenin nasıl yük dağtımının yapılacağı konusuna girebiliriz. Burada Citrix arkasındaki bir SSL sitenin neden bir problem teşkil edebileceği konusuna değinmek gerekir. Aslında bu sorunun cevabı gayet basit. Bilindiği üzere Citrix NetScaler bir sanal sunucu IP adresi arkasında bulunan bir veya daha fazla sunucuya yük dağıtmak ile sorumludur. Yani dışarıdan gelen istekler Citrix üzerinde bir sanal sunucuya gelir o da bu isteği arkada bulunan sunuculara dağıtır. Öyleyse ilk gelen SSL isteği için Citrix cihazının cevap vermesi ve arka tarafa yükü dağıtması gerekir. Hâlbuki client tarafından bir SSL bağlantının kurulabilmesi için Citrix üzerinde bir sertifika yapılandırması bulunması gerekmektedir. Bir başka deyişle web sunucular üzerine import ettiğimiz SSL sertifikasının Citrix üzerinde de bulunması gerekir. Aksi takdir Citrix ile client arasında bir SSL bağlantı oluşmayacaktır. Sertifikanın Citrix ürününe yüklenmesiyle gelen HTTPS istekleri Citrix tarafından karşılanıp arkada bulunan web sunuculara dağıtılabilecektir. Öyleyse bu makalenin konusu olan Citrix ürününe sunucularımızın sertifikasının nasıl yükleneceğine geri dönelim.
Resim-13 Citrix SSL menüsü
Citrix konsolu açılarak solda bulunan hiyerarşik listede SSL ikonu tıklanır (Resim-13). SSL ikonu tıklandığında sağ tarafta Tools başlığı altında Import PKCS#12 linki görülür. Bu menüden bir sertifikanın import edilmesi mümkündür. Elbette bir takım şartların sağlanmasıyla.. Öncelik ile web sunucumuza dönüp sertifanın Private Key ile birlikte export etmemiz gerekmektedir (Resim-14)
Resim-14 Sertifika Export
MMC konsolunda Certificates snap-in’inden Computer Account seçeneği seçilir. Açılan ekranda Personal altında daha önce import ettiğimiz sertifikanın üzerine gelinir. Sertifika üzerinde mouse ile sağ tuş tıklandığında çıkan menüden All Tasks altında Export seçeneği açılır.
Resim-15 Private Key export seçeneği
Export işleminin sihirbazı, Private Key’i de export etmek istenip istenmediğini soracaktır. Burada Private Key’in de export edilebilmesi için Yes, export the private key seçeneği seçilir.
Resim-16 Export seçenekleri
Export işleminin diğer adımı olan format bilgileri (Resim-16) girildikten sonra Private Key içermesi sebebiyle export edilecek dosyaya bir parola verilmesi beklenen ekrana gelinir (Resim-17).
Resim-17 Parola verilmesi
Resim-18 Dosya lokasyonunun belirlenmesi
Parola verilmesinin ardından export edilecek dosya için yer ve isim bilgileri verilerek export işlemi tamamlanır (Resim-18). Export işlemi neticesinde PFX uzantılı private key içeren bir sertifika elde edilmiş olur. Bu sertifikayı aşağıda anlatılacak bir takım işlemlerden geçirdikten sonra Citrix NetScaler cihazına import edeceğiz.
Citrix NetScaler yönetim ekranında solda bulunan hiyerarşik yapıda SSL linki tıklandığında sağ taraftaki bölüme Resim-19 görülen menüler gelir. Burada Import PKCS#12 linki tıklanınca bir pencere açılacaktır.
Resim-19 Citrix SSL yönetim ekranı
Açılan pencerede Output File Name kısmına Citrix üzerinde oluşacak dosya için bir isim belirlenir. PKCS12 File Name kısmında daha evvel export ettiğimiz PFX uzantılı dosyayı göstermek gerekecektir (Resim-20)
Resim-20 Import PKC12 menüsü
İşlem sonrasında Citrix NetScaler üzerinde içeriği Resim-21’de gözüken dosya oluşacaktır. Dosya incelendiğinde iki bölümden oluştuğu hemen göze çarpacaktır. Birinci bölüm Private Key ile alakalı olan bölüm diğer bölüm ise sertifika ile alakalı bölümdür.
Resim-21 Import PKCS12 çıktı dosyası
Bu çıktı dosyanın oluşmasından sonra Citrix üzerinde SSL menüsünün altındaki Certificates kısmına girilip mouse sağ tuşu yardımıyla Add seçeneği seçilir. Bu seçeneğin seçimiyle Resim-22’deki ekrana ulaşılır.
Resim-22 Add Certificate
Burada Ceriticate-Key Pair Name kısmına hatırlatıcı bir isim verilir. Certificate File Name ve Private Key File Name kısımlarına ise Resim-20’de ürettiğimiz dosyanın yolu gösterilir. Burada o dosyada hem private key hem sertifika ile alakalı kısımların olduğunu hatırlatmakta fayda var. Bu sebep ile bizden istenen iki kısıma da bu dosyayı göstermekteyiz. Install butonuna tıklandığında sertifika artık Citrix NetScaler üzerine yüklenmiş olacaktır. Akabinde bu sertifika lokal kullanılan bir CA otoritesi tarafından üretilmiş olduğundan dolayı Citrix ürününe bir de sertifikanın alındığı CA otoritelerinin sertifikalarını yüklemek gerekecektir. Bunu da CA sunucularımızın CER uzantılı (yani Private key içermeyen) sertifikalarını export ederek yapabiliriz.
Resim-23 Root Sertifika otoritelerin sertifikalarının yüklenmesi
Bu sertifikaları export ettikten sonra yine Citrix NetScaler ekranında SSL linki üzerine gelinir. Linke gelindiğinde ekranın sağında görülen menüden (Resim-23) Manage Certificates /Keys /CSRs linki seçilir. Seçim sonrasında gelen ekranda Upload butonu tıklanır. Butonun tıklanmasıyla export ettiğimiz CA sertifikası gösterilir. Test ortamında RootCA ve SubCA için iki sertifikayı export edip import edeceğiz.
Resim-24 Root CA Sertifika Import
Import işlemi için açılan ekranda Certificate File Name kısmına Root sertifikasının bulunduğu lokasyon göserilir. Certificate Format kısmında da DER seçeneği seçilir.
Resim-25 Root CA Sertifika Import
Yukarıda Root CA içim yapılan işlemler Subordinate CA sertifikası için tekrarlanır. Bu işlemler neticesinde Root sertifikaları Citrix üzerine yüklenmiş olacaktır.
Resim-27 Seritfikanın Linklenmesi
Yüklü sertifikalar SSL linki altında Certificates kısmı altında görülebilir (Resim-27). Burada yüklü sertifikalar arasında ilişkinin de kurulması gerekmektedir. Yani sertifikayı bir SubCA’den aldık. O da sertifika dağıtma yetkisini bir RootCA’den aldı. Doğal olarak bu güven zinciri Citrix üzerinde tanımlanmalıdır. Bunun için SSL altında bulunan Certificates kısmında SubCA sertifikası üzerinde mouse sağ tuşuyla açılan menüde RootCA sertifikası seçilir. Bu SubCA ile RootCA arasındaki hiyerarşiyi belirtecektir (Resim-28).
Resim-28 Sertifika Hiyerarşi belirleme
Resim-29 Sertifika Hiyerarşi belirleme
Aynı şekilde de sunucu sertifikasını SubCA ile linklemek gerekecektir. Böylelik ile alınan sunucu sertifakasının RootCA’ye kadar olan hiyerarşisi belirtilmiş olacaktır (Resim-29).
Resim-30 Citrix Virtual Servers
Citrix üzerinde Load Balancing menüsü altında oluşturulmuş HTTPS sanal sunucular görülebilir. Burada yüklediğimiz sertifika ile HTTPS sunucu ilişkilendirilmediğinden dolayı sunucunun down durumda olduğu görülebilir.
Resim-31 HTTPS Virtual Sunucu
Sunucu üzerinde gelip mouse ile tıklandığında açılan menüde SSL Settings sekmesi seçilir. Burada sunucu için import işlemi yaptığımız sertifikanın üzerine gelinir ve Add butonu ile sağdaki Configured ekranına geçmesi sağlanır.
Resim-32 HTTPS Sunucu
OK butonu ile işlem tamamlandığında HTTPS sanal sunucunun UP duruma geçip çalıştığı görülecektir. Bir başka Citrix makalesinde görüşmek üzere.