Bu eğitimde, Java keytool aracını kullanarak GlassFish (artık Eclipse GlassFish) için nasıl CSR (Sertifika İmzalama Talebi) oluşturulacağını göstereceğiz.
GlassFish, bir bakımdan alışılmadık bir kolaylık sunar: yeni bir kurulum zaten bir keystore (Eclipse GlassFish 7.1 ve sonrasında keystore.p12, daha eski sürümlerde keystore.jks) ile birlikte gelir ve s1as takma adı altında varsayılan bir sertifika girişi barındırır. CSR’yi doğrudan bu mevcut anahtardan oluşturabilir veya aynı takma ad altında bunu yeni bir anahtarla değiştirebilirsiniz. Her iki durumda da, imzalanan sertifikayı içe aktarırken aynı takma ad tekrar kullanılır; böylece anahtar, CSR ve verilen sertifika hep aynı yerde bulunur.
Neye ihtiyacınız olacak
- Çalışan bir GlassFish (veya Eclipse GlassFish) kurulumu. Varsayılan keystore, alan adının config dizininde bulunur; örneğin Eclipse GlassFish 7.1 ve sonrasında glassfish/domains/domain1/config/keystore.p12, daha eski sürümlerde keystore.jks.
- keytool komutunun kullanılabilir olması için bir Java kurulumu. GlassFish bir JDK ile birlikte gelir, bu yüzden keytool genellikle sistem yolunda zaten mevcuttur.
keytool -helpile doğrulayın. - GlassFish sunucusuna kabuk veya terminal erişimi. Özel anahtar bu sunucuda kalmalıdır.
- Güvence altına almak istediğiniz tam nitelikli alan adı (FQDN), örneğin www.yourdomain.com, ve SAN alanı için gereken diğer ek ana bilgisayar adları.
- CSR’nin Ayırt Edici Adı (Distinguished Name) için kuruluşunuzun yasal bilgileri (ülke, eyalet, şehir, kuruluş adı).
- Alan adı için GlassFish ana parolası. Fabrika varsayılanı changeit‘tir; üretim sistemlerinde bunu
asadmin change-master-passwordile değiştirin.
CSR oluşturmanın iki yolu
CSR’nizi zaten oluşturduysanız, CSR’yi gönderme bölümüne, ardından GlassFish’e SSL sertifikası kurma bölümüne geçin.
GlassFish’te iki yaygın keytool akışı vardır. Durumunuza uyanı seçin:
- Seçenek A: Mevcut s1as anahtarından CSR oluşturma (önerilir). Yeni bir GlassFish alan adı, varsayılan keystore içinde (7.1+ sürümde keystore.p12, daha eski sürümlerde keystore.jks) s1as takma adı altında zaten bir özel anahtara sahiptir. En hızlı ve en düşük riskli yol, bu anahtarı olduğu gibi bırakıp ondan yalnızca bir CSR dışa aktarmaktır. Seçenek A‘ya geçin.
- Seçenek B: Varsayılan s1as anahtarını yeni bir anahtarla değiştirip ardından CSR oluşturma. Bilinen, güncel bir anahtar boyutu ve DN istiyorsanız veya varsayılan anahtarın kullanılmış ya da açığa çıkmış olabileceğinden şüpheleniyorsanız bunu kullanın. Seçenek B‘ye geçin.
Hangi seçeneği seçerseniz seçin, takma ad s1as olarak kalmalıdır (veya değiştirirseniz, domain.xml dosyasını da buna uyacak şekilde güncellemeniz gerekir). GlassFish’in HTTPS dinleyicisi sertifikayı takma ada göre bulur; bu yüzden uyumsuz bir takma ad, GlassFish’in anahtarı bulamamasına ve TLS’nin başlamamasına yol açar.
Seçenek A: Mevcut s1as anahtarından CSR oluşturma
Adım 1: GlassFish config dizinine geçin
Bir terminal açın ve alan adınız için keystore’u barındıran dizine geçin. Varsayılan bir kurulumda bu, domain1‘in config klasörüdür:
cd /opt/glassfish7/glassfish/domains/domain1/config
Yolu GlassFish’i nereye kurduğunuza göre uyarlayın (daha eski GlassFish 4 sürümleri, kurulumu bir glassfish4/ üst klasörü altında barındırır; Eclipse GlassFish 6, 7 ve 8 genellikle glassfish7/, glassfish8/ veya benzeri bir klasör altına kurulur). Kendi alan adınızı oluşturduysanız, domain1 yerine o alan adının adını kullanın. Keystore dosya adını doğrulamak için bu dizinde ls *.p12 *.jks komutunu çalıştırın: Eclipse GlassFish 7.1 ve sonrasında keystore.p12, daha eski sürümlerde keystore.jks göreceksiniz. Aşağıdaki komutlarda keystore.jks yazan yerlerde bu dosya adını kullanın.
Adım 2: s1as girişinin var olduğunu doğrulayın
Keystore içeriğini listeleyin ve s1as‘ın mevcut olduğunu ve bir PrivateKeyEntry olduğunu kontrol edin:
keytool -list -v -keystore keystore.jks -alias s1as
Keystore parolasını girin (fabrika varsayılanı changeit; bir üretim sunucusunda bu, alan adı ana parolanızla eşleşmelidir). Çıktıda Entry type: PrivateKeyEntry satırı bulunmalıdır. Bunun yerine Alias <s1as> does not exist mesajı alırsanız, Seçenek B‘ye geçip yeni bir giriş oluşturun.
Adım 3: SAN ile CSR’yi dışa aktarın
Modern tarayıcılar ve TLS istemcileri, sertifikaları yalnızca Ortak Ad’a değil, Konu Alternatif Adı (SAN) uzantısına göre doğrular. SAN’ları doğrudan CSR içinde talep edin ki CA bunları verilen sertifikaya dahil etsin:
keytool -certreq
-alias s1as
-keystore keystore.jks
-file glassfish.csr
-ext san=dns:yourdomain.com,dns:www.yourdomain.com
Bayrakların anlamı:
- -alias s1as: mevcut GlassFish sertifika takma adı. Bu takma ad altındaki özel anahtar, talebi imzalar.
- -keystore keystore.jks: varsayılan GlassFish keystore dosyası. Eclipse GlassFish 7.1 ve sonrası, keystore.p12 adlı bir PKCS12 keystore ile gelir; daha eski sürümler keystore.jks adlı bir JKS keystore kullanır. Bu dizinde gerçekten var olan dosya adını kullanın. Komutun kendisi her iki durumda da aynıdır; keytool biçimi otomatik algılar.
- -file glassfish.csr: CSR için çıktı dosya adı. İstediğiniz herhangi bir adı seçebilirsiniz.
- -ext san=dns:…: Konu Alternatif Adı uzantısı. Sertifikanın kapsaması gereken her ana bilgisayar adını, hem çıplak kök alan adını (yourdomain.com) hem de www alt alan adını dahil ederek listeleyin. Virgülle ayırarak daha fazla giriş ekleyebilirsiniz, örneğin dns:api.yourdomain.com.
keytool, keystore parolasını sorar ve CSR’yi geçerli dizindeki glassfish.csr dosyasına yazar. CSR’nin Konusu (Ayırt Edici Ad), s1as girişinde depolanan bilgilerden alınır; yeni bir GlassFish kurulumunda bu, otomatik oluşturulan kendinden imzalı sertifikadır, bu yüzden DN şirketinizle eşleşmeyecektir. Çoğu CA yalnızca Ortak Ad ve SAN listesini doğrular ve sipariş formunda DN’nin geri kalanını geçersiz kılmanıza izin verir, ancak DN’sinde zaten yasal şirket bilgilerinizin bulunduğu bir CSR’ye ihtiyacınız varsa Seçenek B‘yi kullanın.
Seçenek B: Varsayılan s1as anahtarını yeni biriyle değiştirme
Anahtar boyutu ve DN üzerinde tam kontrol istediğinizde veya fabrika tarafından oluşturulmuş anahtarı yeniden kullanmak istemediğinizde bu seçeneği kullanın. Akış şöyledir: varsayılan s1as girişini silin, aynı takma ad altında yeni bir anahtar oluşturun, ardından CSR’yi dışa aktarın. Takma adı s1as olarak tutmak, daha sonra domain.xml‘e dokunmanız gerekmediği anlamına gelir.
Adım 1: Keystore’u yedekleyin
Herhangi bir şeyi silmeden önce, gerekirse geri dönebilmek için mevcut keystore’u kopyalayın. Alan adının config dizininden:
cp keystore.jks keystore.jks.bak
Adım 2: Varsayılan s1as girişini silin
keytool -delete -alias s1as -keystore keystore.jks
İstendiğinde keystore parolasını girin.
Adım 3: Aynı takma ad altında yeni bir özel anahtar oluşturun
s1as takma adı altında yeni bir 2048 bit RSA anahtarı oluşturun ve komutun etkileşimsiz olması için DN’yi doğrudan komut satırında belirtin:
keytool -genkeypair
-alias s1as
-keyalg RSA -keysize 2048
-keystore keystore.jks
-dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US"
-validity 825
Bayrakların anlamı:
- -alias s1as: varsayılan GlassFish takma adını yeniden kullanır, böylece domain.xml için değişiklik gerekmez.
- -keyalg RSA -keysize 2048: 2048 bit RSA anahtarı, güncel genel minimum standarttır. Birkaç yıl saklamayı planladığınız yeni anahtarlar için 3072 bit makul bir yükseltmedir. Çoğu genel CA, daha küçük ve daha hızlı bir anahtar için ECDSA’yı (-keyalg EC -groupname secp256r1) da kabul eder.
- -keystore keystore.jks: varsayılan GlassFish keystore. Eclipse GlassFish 7.1 ve sonrasında keystore.p12 ile değiştirin. keytool, mevcut keystore biçimini korur (daha eski kurulumlarda JKS, 7.1+ sürümde PKCS12); ikisi de burada sorunsuz çalışır.
- -dname “CN=…”: CSR’ye yazılan Ayırt Edici Ad alanları. Tam, yasal şirket bilgilerinizi kullanın:
- CN: güvence altına aldığınız tam FQDN, örneğin www.yourdomain.com, veya *.yourdomain.com gibi bir joker karakter. Etkileşimli moddaki keytool istemi böyle söylese de, bir kişinin adını girmeyin.
- O: şirketinizin tam yasal adı.
- L: tam şehir adı (kısaltma yapmayın).
- ST: eyalet veya ilin tam adı (iki harfli kod kullanmayın).
- C: iki harfli ISO ülke kodu, örneğin US, GB, DE.
- OU (Organizasyonel Birim): bu alan artık genel CA’lar tarafından verilmiyor. DN’den çıkarın.
keytool, keystore parolasını ve anahtar parolasını sorar. Bir GlassFish alan adında, keystore parolası, anahtar parolası ve alan adı ana parolasının hepsi eşleşmelidir, aksi takdirde GlassFish başlangıçta anahtarın kilidini açamaz ve HTTPS başarısız olur. Keystore parolasını yeniden kullanmak için anahtar parolası istemi geldiğinde Enter’a basın.
Adım 4: SAN ile CSR’yi dışa aktarın
Seçenek A ile aynı komut, ancak yeni anahtarınıza karşı çalıştırılır:
keytool -certreq
-alias s1as
-keystore keystore.jks
-file glassfish.csr
-ext san=dns:yourdomain.com,dns:www.yourdomain.com
Keystore parolasını girin. keytool, CSR’yi geçerli dizindeki glassfish.csr dosyasına yazar.
Kritik: takma adı s1as olarak tutun
GlassFish’te en yaygın keytool hatası, süreç boyunca herhangi bir noktada, ister anahtarı oluştururken ister imzalanan sertifikayı içe aktarırken takma adı değiştirmektir. İki tür hata ortaya çıkar:
- Anahtarda yanlış takma ad. GlassFish’in HTTPS dinleyicisi, domain.xml içinde s1as‘a bağlıdır. Farklı bir takma ad altında bir anahtar oluşturursanız, GlassFish onu bulamaz ve dinleyici varsayılan kendinden imzalı sertifikaya geri döner (veya başlamaz). Gerçekten farklı bir takma ad istiyorsanız, domain.xml içindeki her s1as referansını buna uyacak şekilde güncellemeniz gerekir.
- İçe aktarmada yanlış takma ad. CA imzalanan sertifikanızı gönderdiğinde, bunu özel anahtarı barındıran aynı takma ad altına geri içe aktarmalısınız. Tamamen yeni bir takma ad altında içe aktarmak, sertifikayı özel anahtar olmadan bağımsız, güvenilir bir giriş olarak depolar ve TLS çalışmaz.
Terminali kapatmadan önce şu üç değeri not edin:
- Takma ad (varsayılan s1as; bunu koruyun).
- Keystore dosya yolu, örneğin glassfish/domains/domain1/config/keystore.p12 (veya daha eski sürümlerde keystore.jks).
- Keystore parolası (alan adı ana parolasına eşit olmalıdır).
Göndermeden önce CSR’yi doğrulayın
CA bunları doğrulamadan önce DN’deki yazım hatalarını veya eksik SAN’ları yakalayın. CSR’yi keytool ile yazdırın:
keytool -printcertreq -file glassfish.csr
Veya OpenSSL kuruluysa, onu kullanın:
openssl req -noout -text -in glassfish.csr
Çıktıda üç şeyi doğrulayın: Subject‘in tam DN’nizi gösterdiğini, Subject Alternative Name‘in ihtiyaç duyduğunuz her ana bilgisayar adını listelediğini ve Public-Key boyutunun istediğinizle eşleştiğini (2048 bit RSA veya seçtiğiniz her ne ise). Aynı kontrolü tarayıcıda yapmak için CSR’yi CSR Decoder aracımıza da yapıştırabilirsiniz.
CSR’yi Sertifika Yetkilinize gönderin
glassfish.csr dosyasını herhangi bir metin düzenleyicide açın. Dosya, —–BEGIN CERTIFICATE REQUEST—– ile başlayan ve —–END CERTIFICATE REQUEST—– ile biten düz metindir. Bu başlık ve alt bilgi satırları dahil olmak üzere tüm bloğu kopyalayın ve CA’nızla ödeme sırasında CSR alanına yapıştırın. Windows’ta tam metni almak için Ctrl + A ardından Ctrl + C kullanın; macOS’ta Cmd + A ardından Cmd + C kullanın.
CA talebinizi doğrulayıp sertifikayı verdikten sonra, GlassFish’e SSL sertifikanızı nasıl kuracağınız ile devam edin. CA zincirini güvenilir olarak içe aktaracak, ardından imzalanan sertifikayı aynı keystore dosyasındaki (7.1+ sürümde keystore.p12, daha eski sürümlerde keystore.jks) s1as takma adına geri içe aktaracak ve son olarak HTTPS dinleyicisini bu takma ada yönlendireceksiniz.
Bugün SSL Dragon’dan sipariş vererek SSL Sertifikalarında %10 indirimden yararlanın!
Hızlı düzenleme, güçlü şifreleme, %99,99 tarayıcı güvenilirliği, özel destek ve 25 günlük para iade garantisi. Kupon kodu: SAVE10


