Bu eğitim, keytool ve Elytron güvenlik alt sistemini kullanarak JBoss EAP ve WildFly’a SSL sertifikasının nasıl kurulacağını gösterir. Sertifika dosyalarınız henüz yoksa, ilk bölüm CSR oluşturmayı ele alır.
Sürümler hakkında not: modern JBoss EAP (7.1 ve sonrası, EAP 8 dahil) ve son WildFly sürümleri, HTTPS’i Undertow https-listener‘a bağlı elytron alt sistemi üzerinden yapılandırır. Eski security-realm yöntemi ve eski Tomcat veya Jetty bağlayıcıları kullanımdan kaldırılmıştır, bu nedenle bu kılavuz güncel yaklaşımı kullanır.
Ayrıca sizi tüm süreç boyunca yönlendiren bir video kaydettik. Videoyu izleyebilir, talimatları okuyabilir veya her ikisini de yapabilirsiniz. Videoyu aşağıda izleyebilirsiniz.
JBoss’ta CSR kodu oluşturma
CSR (Sertifika İmzalama Talebi), bir sertifika sipariş ederken Sertifika Yetkilisine (CA) gönderdiğiniz kodlanmış bir metin bloğudur. CA’nın talebi doğrulamak için kullandığı alan adı ve organizasyon bilgilerinizi taşır. CSR oluşturmak aynı zamanda sunucunuzda kalan ve kurulum sırasında gerekli olan eşleşen özel anahtarı da oluşturur.
İki seçeneğiniz var:
- CSR’yi otomatik olarak oluşturmak için CSR Oluşturucumuzu kullanın.
- JBoss’ta CSR nasıl oluşturulur konulu adım adım eğitimimizi takip edin.
JBoss’ta CSR, bir .jks veya .p12 anahtar deposundan keytool ile oluşturulur. Şimdi seçtiğiniz alias ve keystore adını not edin: daha sonra imzalanan sertifikayı tam olarak bu alias’a geri aktaracaksınız. Siparişiniz sırasında CSR’yi CA’ya gönderin ve sertifika verildikten sonra aşağıdaki kurulumla devam edin.
JBoss Sunucusuna SSL sertifikası kurma
Adım 1: Sertifika dosyalarınızı hazırlayın
Doğrulamadan sonra, CA sertifika dosyalarınızı genellikle bir ZIP arşivi içinde e-posta ile gönderir. Arşivi çıkarın. Şunlara sahip olmanız gerekir:
- Ana sertifikanız (bir .crt, .cer veya .pem dosyası).
- Genellikle .ca-bundle dosyası olarak sağlanan ara sertifikalar (CA paketi). Bazı CA’lar kök sertifikayı da dahil eder.
- CSR ile birlikte oluşturduğunuz ve CSR oluştururken seçtiğiniz alias altında özel anahtarınızı tutan keystore (.jks veya .p12).
Bu dosyaları bir arada tutun ve sunucuya kopyalayın, örneğin JBoss yapılandırma dizinine ($JBOSS_HOME/standalone/configuration/). Bir dosya metin olarak açılırsa, beklenen BEGIN CERTIFICATE ve END CERTIFICATE satırlarını içerdiğini doğrulayabilirsiniz.
Adım 2: CA zincirini anahtar deposuna içe aktarın
keytool’un eksiksiz bir güven zinciri oluşturabilmesi için önce ara (ve sağlanmışsa kök) sertifikaları içe aktarın. Özel anahtarınızı tutan aynı keystore‘u kullanın ve her CA sertifikasına kendi alias’ını verin:
keytool -import -trustcacerts -alias root -file root.crt -keystore your_keystore.jks
keytool -import -trustcacerts -alias intermediate -file intermediate.crt -keystore your_keystore.jks
CA’nız tek bir .ca-bundle dosyası gönderdiyse, bunu tek bir alias altında içe aktarın (örneğin -alias intermediate). İstendiğinde keystore şifresini girin ve güveni onaylayın. Bu girişler güvenilir sertifika girişleridir, anahtar girişleri değildir, dolayısıyla özel anahtarınızı etkilemezler.
Adım 3: İmzalanan sertifikayı anahtar alias’ınıza içe aktarın
Şimdi imzalanan sertifikanızı (CA’dan gelen yanıt) CSR oluştururken kullandığınız tam alias’a içe aktarın. Bu alias zaten özel anahtarı tuttuğundan, keytool bunu bir sertifika yanıtı olarak ele alır ve geçici kendi kendine imzalı sertifikayı CA tarafından imzalanan zincirle değiştirerek anahtarı sağlam bırakır:
keytool -import -trustcacerts -alias your_csr_alias -file your_domain.crt -keystore your_keystore.jks
your_csr_alias‘ı CSR oluştururken kullandığınız alias ile ve your_keystore.jks‘yi keystore’unuzla değiştirin. Başarılı olursa keytool Certificate reply was installed in keystore mesajını yazdırır.
Önemli: burada yeni bir alias icat etmeyin. Yanıtı yeni bir alias altında içe aktarmak, özel anahtarı olmayan güvenilir bir sertifika girişi oluşturur, zincir kaybolur ve sunucu TLS el sıkışmasını tamamlayamaz. Failed to establish chain from reply görürseniz, bu, Adım 2’deki ara veya kök sertifikanın keystore’da eksik olduğu anlamına gelir.
Sonucu doğrulayabilirsiniz, alias artık 1’den büyük uzunlukta bir sertifika zinciri göstermelidir:
keytool -list -v -alias your_csr_alias -keystore your_keystore.jks
Adım 4: Elytron alt sisteminde HTTPS’i yapılandırın
Keystore’u $JBOSS_HOME/standalone/configuration/ içine yerleştirin, ardından bir Elytron key-store, key-manager ve server-ssl-context tanımlayın. En hızlı yol yönetim CLI’sıdır. Sunucuyu başlatın, jboss-cli.sh --connect ile bağlanın ve değişikliklerin birlikte uygulanması için bir batch çalıştırın:
batch
/subsystem=elytron/key-store=httpsKS:add(path=your_keystore.jks, relative-to=jboss.server.config.dir, credential-reference={clear-text=your_keystore_password}, type=JKS)
/subsystem=elytron/key-manager=httpsKM:add(key-store=httpsKS, credential-reference={clear-text=your_keystore_password})
/subsystem=elytron/server-ssl-context=httpsSSC:add(key-manager=httpsKM, protocols=["TLSv1.3","TLSv1.2"])
run-batch
Ardından Undertow https-listener‘ı yeni ssl-context’e yönlendirin. Undertow, eski bir security-realm ile bir Elytron ssl-context’i aynı anda referans alamaz, dolayısıyla eski referansı kaldırın ve yenisini tek bir batch içinde ayarlayın:
batch
/subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm)
/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=httpsSSC)
run-batch
standalone.xml‘i doğrudan düzenlemeyi tercih ederseniz (sunucu durdurulmuş halde), eşdeğer yapılandırma elytron alt sisteminin içinde şu şekilde görünür:
<tls>
<key-stores>
<key-store name="httpsKS">
<credential-reference clear-text="your_keystore_password"/>
<implementation type="JKS"/>
<file path="your_keystore.jks" relative-to="jboss.server.config.dir"/>
</key-store>
</key-stores>
<key-managers>
<key-manager name="httpsKM" key-store="httpsKS">
<credential-reference clear-text="your_keystore_password"/>
</key-manager>
</key-managers>
<server-ssl-contexts>
<server-ssl-context name="httpsSSC" key-manager="httpsKM" protocols="TLSv1.3 TLSv1.2"/>
</server-ssl-contexts>
</tls>
Ve undertow alt sistemindeki karşılık gelen listener bu ssl-context’i referans alır:
<https-listener name="https" socket-binding="https" ssl-context="httpsSSC" enable-http2="true"/>
protocols‘u TLS 1.3 ve TLS 1.2 ile sınırlamak, eski TLS 1.0 ve 1.1’i devre dışı bırakır. Varsayılan HTTPS bağlantı noktası 8443‘tür; standart bağlantı noktasına ihtiyacınız varsa bunu bir yük dengeleyici veya bağlantı noktası yönlendirmesiyle 443’e eşleyin.
Adım 5: JBoss’u yeniden başlatın
standalone.xml‘i elle düzenlediyseniz, yeni yapılandırmayı yüklemesi için sunucuyu yeniden başlatın. Yukarıdaki CLI batch’lerini kullandıysanız, değişiklikler hemen uygulanır, ancak bir yeniden yükleme temiz bir başlangıcı doğrular:
jboss-cli.sh --connect --command=:reload
Başlatma sırasında sunucu günlüğünü SSL veya Elytron hataları için izleyin. Temiz bir şekilde başladığında, SSL sertifikanız JBoss’a kurulmuş olur.
SSL kurulumunuzu test edin
Kurulumdan sonra sertifikanın ve zincirin doğru şekilde sunulduğunu doğrulayın. Sitenizi HTTPS üzerinden açın (örneğin https://www.yourdomain.com:8443) ve kilit simgesini kontrol edin veya sertifika, zincir ve protokol desteği hakkında tam bir rapor için SSL Checker ile harici bir tarama yapın. Ayrıca komut satırından da kontrol edebilirsiniz:
echo | openssl s_client -connect yourdomain.com:8443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Bu, JBoss’un sunduğu sertifikanın verenini ve geçerlilik tarihlerini yazdırır. Veren, CA’nız ise (kendi kendine imzalı bir giriş değilse), yanıt doğru şekilde içe aktarılmıştır.
Sık Sorulan Sorular
HTTPS bağlantı noktasına OpenSSL ile bağlanın ve sunucunun döndürdüğü sertifikayı okuyun:echo | openssl s_client -connect yourdomain.com:8443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates
Bir sertifika kuruluysa, bu komut sertifikanın verenini, konusunu ve geçerlilik tarihlerini yazdırır. Keystore’u keytool -list -v -keystore your_keystore.jks ile de inceleyebilir veya sitenizi bir tarayıcıda açıp kilit simgesini kontrol edebilirsiniz.
Sertifika bir keystore içinde yer alır ve keystore, Elytron key-store tarafından referans alınır. Yaygın bir konum, Elytron key-store yolu relative-to jboss.server.config.dir olarak ayarlanmış sunucu yapılandırma dizini, $JBOSS_HOME/standalone/configuration/‘dir. key-store yolu ona işaret ettiği sürece başka bir yerde de saklayabilirsiniz.
keytool, sertifikanızdan güvenilir bir köke kadar bir yol oluşturamadı. Önce ara (ve sağlanmışsa kök) sertifikaları -trustcacerts ile aynı keystore’a içe aktarın, ardından imzalanan yanıtı CSR alias’ınıza içe aktarın. Yanıtı yepyeni bir alias altında içe aktardıysanız, özel anahtar kaybolur: o girişi silin ve orijinal anahtar alias’ına yeniden içe aktarın.
keytool -list -v -keystore your_keystore.jks komutunu çalıştırın ve alias’ınız için Valid from satırını okuyun veya canlı sunucunun bildirdiği tarihleri görmek için yukarıdaki OpenSSL komutunu kullanın. Genel TLS sertifika ömürleri CA/Browser Forum kuralları altında kısalıyor: 15 Mart 2026’dan itibaren maksimum 200 gün, 2027’de 100 güne ve 2029’da 47 güne düşecek. Yenileme tarihlerini takip edin ve süresi dolmadan önce yenileyin veya CA’nız destekliyorsa ihracı otomatikleştirin.
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


