bg-tutorials

JBoss Server’a SSL Sertifikası Nasıl Kurulur

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:

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

JBoss’ta bir SSL sertifikasının kurulu olup olmadığını nasıl anlarım?

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.

JBoss’ta SSL sertifikasını nereye koyarım?

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 neden “Failed to establish chain from reply” diyor?

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.

JBoss’ta SSL sertifikamın ne zaman süresinin dolacağını nasıl kontrol edebilirim?

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

A detailed image of a dragon in flight
Tarafından yazıldı

SSL Sertifikaları konusunda uzmanlaşmış deneyimli içerik yazarı. Karmaşık siber güvenlik konularını açık, ilgi çekici içeriğe dönüştürmek. Etkili anlatımlar yoluyla dijital güvenliğin geliştirilmesine katkıda bulunun.