Weblogic SSL Konfigürasyonu

By in Blog on 10/12/2014

SSL (Secure Sockets Layer): 2 uygulamanın ağ üzerinde birbiriyle ilk iletişim kurarken ve veri alışverişi yaparken birbirlerinin (sadece server yani tek taraflı da olabilir) kimliklerini çeşitli sertifika tipleriyle tanıttıkları ve bir şifreleme algoritması üzerinden haberleştikleri güvenlik katmanıdır.

HTTPServerlara (örneğin Oracle tarafında OHS)uygulanabildiği gibi WL Admin ve managed serverlara da uygulanabilir. http serverlarda genel olarak (eğer browserlara https://hostname şeklinde yazılıp port belirtilmezse 443 olarak varsayılır, http için bu 80 dir) 443 iken WLS da bu port default olarak 7002 dir. Console üzerinden değiştirilebilir

WLS üzerinde SSL konfigürasyonunun etkin (enabled) olduğunu anlayabilmenin ilk yöntemi https://myserver:7002 şeklinde kontrol etmektir. Ancak enabled olmasına rağmen port değişikliği yapılmış olabileceğinden console üzerinden Servers bölümünden ilgili sunucunun General-> Configuration tabına erişilip kontrol edilebilir.

WL_SSL_1

Bu şekilde enabled olduğunu gördükten sonra https üzerinden ilk erişimde tarayıcı sertifikasyon bilgisini client tarafına getirecektir.

Sertifika ayarlamalarında test ortamı için selfsigned sertifikalar yada piyasadaki otoritelerce kabul edilen merkezlerin sunduğu geçici deneme sertifikaları kullanılabilir. (ör: https://www.symantec.com/page.jsp?id=how-ssl-works&tab=secTab5) Ancak production ortamında bu önerilmez ve production ortamı için oluşturulan sertifikanin CN(common name) alanının sunucunun hostname i ile eşleştiğinden emin olunmalıdır. Doğru bir örnek için aşağıdaki resim dikkate alinabilir.

WL_SSL_2

1: Sertifika oluşturma:

a: Sunucu üzerindeki komut satırından setDomainEnv script i çalıştırılır yada keytool u kullanabileceğimiz ortama geçiş yapılır.

b: Bu private – public key pair i oluşturmak birkaç farklı tool ile olabilmekte ancak biz jdk içerisindeki keytool u kullanıyoruz.

keytool -genkey -alias client -keyalg RSA -keysize 2048 -keystore identity.jks -storepass password -keypass password

c:Certificate Signing Request (CSR) dosyasını aşağıdaki gibi oluşturarak CA ‘ya (sertifika almak istedğimiz otorite) gönderip cevap istiyoruz.

keytool -certreq -keyalg RSA -keysize 2048 -alias client -file certreq.csr -keystore identity.jks -storepass password

CA bize RootCA ile birlikte bazen IntermediateCA yı gönderecektir.

d: Elde ettiğimiz sertifikaları keystore dosyasının içine koyacağız.(import process) Bu işlem iki farklı şekilde yapılabilir. Birincisi RootCA, IntermediateCA ve cevap olarak gelen sertifikyı hiyerarşik olarak import etmek. İkincisi de .pem dosyası içinde bir sertifika zinciri oluşturmak.

Biz ikinci yöntemi takip edelim, “CertChain.pem” adıyla bir dosyada toplayalım. Aşağıdaki kodda client key alias tır değiştirilebilir.

keytool -import -file CertChain.pem -alias client -keystore identity.jks -storepass password

e: Keystore oluşturma: RootCA sertifikası olmayan bir keystore kullanılarak oluşturulabilir yada yada mevcut birisinin içine import edilebilir.

keytool -import -file rootCA.cer -alias RootCA -keystore trust.jks -storepass password

Kontrol etmek için aşağıdaki komut kullanılır.

Keytool –list –v –keystore <keystore-name> -storepass <keystore-password>

2: Keystore u WLS ye uygulamak:

a: Admin console a giriş yaparak SSL uygulanacak sunucu seçilip Configuration->Keystores seçilir.

WL_SSL_3

Keystores bölümündeki Change butonuna tıklanarak Custom Identity and Custom Trust seçilip Save edilir.

WL_SSL_4

WL_SSL_5

b: Sunucu Identity konfigurasyonu

Sunucu kimliğini belirleyebilmek için SSL sekmesine geçilip oluşturulan private key in alias ı (bu anlatımda client idi) ve passphrase i girilir.

WL_SSL_6


NOT: Bu anlatımda yapıldığı gibi sunucuda yalnızca SSL aktif edilirse varsayılan olarak OneWaySSL aktif olacaktır.(Genelde kullanılan durum budur, yani sunucunun kendini tanıtması) Eğer 2Way SSL olarak değiştirilmesi isteniyorsa Advanced seçeneğinden değiştirilebilir.

Server loglarında aşağıdaki gibi logların yazılması beklenmektedir.

<Notice> <Security> <BEA-090171> <Loading the identity certificate and private key stored under the alias client from the JKS keystore file C:\Wonders\WebLogic\Security\SSL-Certs\Verisign\identityVerisign.jks.>

<Notice> <Security> <BEA-090169> <Loading trustedcertificates from the JKS keystore file C:\Wonders\WebLogic\Security\SSL-Certs\Verisign\trustVerisign.jks.>

(Visited 402 times, 1 visits today)

Leave a Reply

Your email address will not be published. Required fields are marked *