Dieses Tutorial zeigt Ihnen wie Sie ein SSL-Zertifikat auf JBoss EAP und WildFly installieren mithilfe von keytool und dem Elytron-Sicherheitssubsystem. Falls Sie Ihre Zertifikatsdateien noch nicht haben, behandelt der erste Abschnitt die Erstellung einer CSR.
Hinweis zu Versionen: Moderne JBoss EAP-Versionen (7.1 und höher, einschließlich EAP 8) und aktuelle WildFly-Releases konfigurieren HTTPS über das elytron-Subsystem, das mit dem Undertow-https-listener verbunden ist. Die alte security-realm-Methode und die veralteten Tomcat- oder Jetty-Connectoren sind deprecated, daher verwendet dieser Leitfaden den aktuellen Ansatz.
Wir haben außerdem ein Video aufgenommen, das Sie durch den gesamten Prozess führt. Sie können das Video ansehen, die Anleitung lesen oder beides tun. Das Video finden Sie unten.
CSR-Code auf JBoss erstellen
Eine CSR (Certificate Signing Request) ist ein Block codierten Textes, den Sie bei der Bestellung eines Zertifikats an die Zertifizierungsstelle (CA) senden. Sie enthält Ihre Domain- und Organisationsdaten, die die CA zur Validierung der Anfrage verwendet. Bei der Erstellung der CSR wird zudem der zugehörige private Schlüssel erzeugt, der auf Ihrem Server verbleibt und bei der Installation benötigt wird.
Sie haben zwei Möglichkeiten:
- Verwenden Sie unseren CSR-Generator, um die CSR automatisch zu erstellen.
- Folgen Sie unserem schrittweisen Tutorial zum Thema wie man eine CSR auf JBoss erstellt.
Auf JBoss wird die CSR mit keytool aus einem .jks– oder .p12-Keystore erstellt. Merken Sie sich jetzt den Alias und den Namen des Keystores, den Sie gewählt haben: Sie werden das signierte Zertifikat später genau in diesen Alias importieren. Reichen Sie die CSR bei der Bestellung bei der CA ein, und sobald das Zertifikat ausgestellt wurde, fahren Sie mit der Installation unten fort.
SSL-Zertifikat auf JBoss Server installieren
Schritt 1: Zertifikatsdateien vorbereiten
Nach der Validierung sendet die CA Ihre Zertifikatsdateien per E-Mail, meist als ZIP-Archiv. Entpacken Sie es. Sie sollten Folgendes haben:
- Ihr primäres Zertifikat (eine .crt-, .cer– oder .pem-Datei).
- Die Zwischenzertifikate, oft als .ca-bundle-Datei geliefert (das CA-Bundle). Manche CAs liefern auch das Root-Zertifikat mit.
- Den Keystore (.jks oder .p12), den Sie mit der CSR erstellt haben und der Ihren privaten Schlüssel unter dem Alias enthält, den Sie bei der Erstellung der CSR gewählt haben.
Bewahren Sie diese Dateien zusammen auf und kopieren Sie sie auf den Server, zum Beispiel in das JBoss-Konfigurationsverzeichnis ($JBOSS_HOME/standalone/configuration/). Wenn sich eine Datei als Text öffnen lässt, können Sie prüfen, ob sie die erwarteten Zeilen BEGIN CERTIFICATE und END CERTIFICATE enthält.
Schritt 2: Die CA-Kette in den Keystore importieren
Importieren Sie zuerst das Zwischenzertifikat (und das Root-Zertifikat, falls vorhanden), damit keytool eine vollständige Vertrauenskette aufbauen kann. Verwenden Sie denselben Keystore, der Ihren privaten Schlüssel enthält, und geben Sie jedem CA-Zertifikat einen eigenen Alias:
keytool -import -trustcacerts -alias root -file root.crt -keystore your_keystore.jks
keytool -import -trustcacerts -alias intermediate -file intermediate.crt -keystore your_keystore.jks
Falls Ihre CA eine einzige .ca-bundle-Datei geliefert hat, importieren Sie diese unter einem Alias (zum Beispiel -alias intermediate). Geben Sie bei Aufforderung das Keystore-Passwort ein und bestätigen Sie das Vertrauen. Diese Einträge sind vertrauenswürdige Zertifikatseinträge, keine Schlüsseleinträge, sie wirken sich also nicht auf Ihren privaten Schlüssel aus.
Schritt 3: Das signierte Zertifikat in Ihren Schlüssel-Alias importieren
Importieren Sie nun Ihr signiertes Zertifikat (die Antwort der CA) in den genauen Alias, den Sie bei der Erstellung der CSR verwendet haben. Da dieser Alias bereits den privaten Schlüssel enthält, behandelt keytool dies als Zertifikatsantwort und ersetzt das temporäre selbstsignierte Zertifikat durch die von der CA signierte Kette, wobei der Schlüssel erhalten bleibt:
keytool -import -trustcacerts -alias your_csr_alias -file your_domain.crt -keystore your_keystore.jks
Ersetzen Sie your_csr_alias durch den Alias, den Sie bei der Erstellung der CSR verwendet haben, und your_keystore.jks durch Ihren Keystore. Bei Erfolg gibt keytool Certificate reply was installed in keystore aus.
Wichtig: Erfinden Sie hier keinen neuen Alias. Wenn Sie die Antwort unter einem neuen Alias importieren, entsteht ein vertrauenswürdiger Zertifikatseintrag ohne privaten Schlüssel, die Kette geht verloren, und der Server kann den TLS-Handshake nicht abschließen. Wenn Failed to establish chain from reply angezeigt wird, bedeutet das, dass das Zwischen- oder Root-Zertifikat aus Schritt 2 im Keystore fehlt.
Sie können das Ergebnis überprüfen, der Alias sollte nun eine Zertifikatskette mit einer Länge von mehr als 1 anzeigen:
keytool -list -v -alias your_csr_alias -keystore your_keystore.jks
Schritt 4: HTTPS im Elytron-Subsystem konfigurieren
Legen Sie den Keystore in $JBOSS_HOME/standalone/configuration/ ab und definieren Sie dann einen Elytron-key-store, key-manager und server-ssl-context. Der schnellste Weg ist die Management-CLI. Starten Sie den Server, verbinden Sie sich mit jboss-cli.sh --connect, und führen Sie einen Batch aus, damit die Änderungen gemeinsam angewendet werden:
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
Als Nächstes verweisen Sie den Undertow-https-listener auf den neuen ssl-context. Undertow kann nicht gleichzeitig auf einen veralteten security-realm und einen Elytron-ssl-context verweisen, entfernen Sie also die alte Referenz und setzen Sie die neue in einem einzigen Batch:
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
Wenn Sie lieber direkt standalone.xml bearbeiten möchten (bei gestopptem Server), sieht die entsprechende Konfiguration innerhalb des elytron-Subsystems wie folgt aus:
<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>
Und der entsprechende Listener im undertow-Subsystem verweist auf diesen ssl-context:
<https-listener name="https" socket-binding="https" ssl-context="httpsSSC" enable-http2="true"/>
Wenn Sie protocols auf TLS 1.3 und TLS 1.2 beschränken, werden die veralteten TLS 1.0 und 1.1 deaktiviert. Der Standard-HTTPS-Port ist 8443; leiten Sie ihn bei Bedarf mit einem Load Balancer oder einer Portweiterleitung auf 443 um, falls Sie den Standardport benötigen.
Schritt 5: JBoss neu starten
Wenn Sie standalone.xml manuell bearbeitet haben, starten Sie den Server neu, damit er die neue Konfiguration lädt. Wenn Sie die oben genannten CLI-Batches verwendet haben, werden die Änderungen sofort angewendet, ein Reload bestätigt jedoch einen sauberen Start:
jboss-cli.sh --connect --command=:reload
Beobachten Sie das Server-Log während des Starts auf SSL- oder Elytron-Fehler. Sobald es fehlerfrei startet, ist Ihr SSL-Zertifikat auf JBoss installiert.
Ihre SSL-Installation testen
Bestätigen Sie nach der Installation, dass das Zertifikat und die Kette korrekt ausgeliefert werden. Öffnen Sie Ihre Website über HTTPS (zum Beispiel https://www.ihredomain.de:8443) und prüfen Sie das Schloss-Symbol, oder führen Sie einen externen Scan mit unserem SSL Checker durch, um einen vollständigen Bericht zu Zertifikat, Kette und Protokollunterstützung zu erhalten. Sie können auch über die Befehlszeile prüfen:
echo | openssl s_client -connect yourdomain.com:8443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Dies gibt den Aussteller und die Gültigkeitsdaten des Zertifikats aus, das JBoss ausliefert. Wenn der Aussteller Ihre CA ist (kein selbstsignierter Eintrag), wurde die Antwort korrekt importiert.
Häufig gestellte Fragen
Verbinden Sie sich mit OpenSSL zum HTTPS-Port und lesen Sie das vom Server zurückgegebene Zertifikat aus:echo | openssl s_client -connect yourdomain.com:8443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates
Wenn ein Zertifikat installiert ist, werden dessen Aussteller, Inhaber und Gültigkeitsdaten ausgegeben. Sie können den Keystore auch mit keytool -list -v -keystore your_keystore.jks untersuchen oder Ihre Website in einem Browser öffnen und das Schloss-Symbol prüfen.
Das Zertifikat befindet sich innerhalb eines Keystores, und der Keystore wird vom Elytron-key-store referenziert. Ein gängiger Speicherort ist das Server-Konfigurationsverzeichnis, $JBOSS_HOME/standalone/configuration/, wobei der Elytron-key-store-Pfad relative-to jboss.server.config.dir gesetzt ist. Sie können ihn auch an einem anderen Ort speichern, solange der key-store-Pfad darauf verweist.
keytool konnte keinen Pfad von Ihrem Zertifikat zu einem vertrauenswürdigen Root aufbauen. Importieren Sie zuerst die Zwischenzertifikate (und das Root, falls geliefert) mit -trustcacerts in denselben Keystore, und importieren Sie dann die signierte Antwort in Ihren CSR-Alias. Wenn Sie die Antwort unter einem völlig neuen Alias importiert haben, geht der private Schlüssel verloren: Löschen Sie diesen Eintrag und importieren Sie stattdessen erneut in den ursprünglichen Schlüssel-Alias.
Führen Sie keytool -list -v -keystore your_keystore.jks aus und lesen Sie die Zeile Valid from für Ihren Alias, oder verwenden Sie den obigen OpenSSL-Befehl, um die vom laufenden Server gemeldeten Daten zu sehen. Die Laufzeiten öffentlicher TLS-Zertifikate werden im Rahmen der Regeln des CA/Browser Forums immer kürzer: Ab dem 15. März 2026 beträgt die maximale Laufzeit 200 Tage, 2027 sinkt sie auf 100 Tage und 2029 auf 47 Tage. Verfolgen Sie die Verlängerungstermine und erneuern Sie das Zertifikat vor Ablauf, oder automatisieren Sie die Ausstellung, wenn Ihre CA dies unterstützt.
Sparen Sie 10% auf SSL-Zertifikate, wenn Sie noch heute bestellen!
Schnelle Ausstellung, starke Verschlüsselung, 99,99% Browser-Vertrauen, engagierter Support und 25-tägige Geld-zurück-Garantie. Gutscheincode: SAVE10


