Die Einrichtung von HTTPS für JBoss 5.1.0 GA
Ich bin in den Prozess der Umstellung meiner Anwendung von HTTP, HTTPS und scheint zu sein, läuft in ein Problem.
Hier ist, was ich getan habe, so weit aus der Basis von diese Anweisungen:
- Identifizieren Sie den Hostnamen für den computer, der den server hostet. I. e.: localhost für diese Anleitung
- Identifizieren, die jBoss-server-Typ (alle,default, Produktion). I. e.: ecotrak für diese Anleitung
- jBoss empfiehlt die Verwendung der gleichen Datei wie die beiden keystore und trustore. Dieser server.keystore. In einem jungfräulichen Installation sollte es keine server.keystore in thedefault/conf Ordner. Wenn Sie eine haben, müssen Sie entscheiden, ob Sie zu löschen (verwenden Sie diese Anleitung), oder ob die Anpassung den Anweisungen, um Ihre situation anpassen.
- Erstellen des keystore und privaten Schlüssel:
- Öffnen Sie eine Eingabeaufforderung oder shell und gehen Sie auf die default/conf Ordner.
- keytool -genkey -alias jbosskey -keypass changeit -keyalg RSA-keystore server.keystore
- Beantworten Sie die Eingabeaufforderungen. Verwenden myHostname, wenn gefragt, für die das erste/Letzte name. Dies ist von entscheidender Bedeutung.
- server.keystore erzeugt.
- keytool -list -keystore server.keystore
- Sollten Sie die PrivateKeyEntry namens jbosskey in der Auflistung.
- Generieren und speichern das Zertifikat.
- keytool -export-alias jbosskey -keypass changeit -file-server.crt -keystore server.keystore
- server.crt erzeugt.
- keytool -import-alias jbosscert -keypass changeit -file-server.crt -keystore server.keystore
- Erhalten Sie eine Warnung, dass es bereits in den keystore. Ignorieren Sie es. Es ist, weil Java erwartet separaten Schlüsselspeicher adn trustore-Datei und wir verwenden nur eine.
- keytool -list -keystore server.keystore
- Sie sollten sehen, ein TrustedCertEntry namens jbosscert in der Auflistung.
In meinem server.xml ich habe Folgendes:
<!-- SSL/TLS Connector configuration using the admin devl guide keystore-->
<Connector protocol="HTTP/1.1" SSLEnabled="true"
port="8443" address="${jboss.bind.address}"
scheme="https" secure="true" clientAuth="false"
keystoreFile="C:/dev/server/jboss-5.1.0.GA/server/ecotrak/conf/server.keystore"
keystorePass="password" sslProtocol = "TLS" keyAlias="jbosskey" />
Wenn ich den server neu starte habe ich Folgendes:
call %JBOSS_HOME%\bin\run.bat -c default -b 0.0.0.0 -Djavax.net.ssl.trustStore=C:/dev/server/jboss-5.1.0.GA/server/ecotrak/conf/server.keystore
Hier ist, was ich in meine log-Datei:
00:09:03,110 INFO [AprLifecycleListener] The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\dev\jdk\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\dev\jdk\jre\bin;native
00:09:03,197 INFO [Http11Protocol] Initializing Coyote HTTP/1.1 on http-localhost%2F127.0.0.1-8080
00:09:03,214 INFO [AjpProtocol] Initializing Coyote AJP/1.3 on ajp-localhost%2F127.0.0.1-8009
00:09:03,261 ERROR [Http11Protocol] Error initializing endpoint
java.io.IOException: Cannot recover key
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:456)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:139)
Einem anderen Abschnitt der log -
00:09:03,265 ERROR [AbstractKernelController] Error installing to Start: name=WebServer state=Create
LifecycleException: Protocol handler initialization failed: java.io.IOException: Cannot recover key
at org.apache.catalina.connector.Connector.initialize(Connector.java:1031)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:683)
BEREITSTELLUNGEN FEHLER:
Deployment "WebServer" is in error due to the following reason(s): LifecycleException: Protocol handler initialization failed: java.io.IOException: Cannot recover key
Deployment "jboss.web:service=WebServer" is in error due to the following reason(s): ** NOT FOUND Depends on 'jboss.web:service=WebServer' **
Jedes ideal, was ist hier Los?
Update
Fand ich meinen Fehler - ich hatte gemischte bis die Passwörter zwischen den keystore und das Zertifikat. Sobald das behoben wurde, bin ich nun in der Lage, führen Sie die Website unter HTTPS
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich folgte den Anweisungen oben und bekam die gleichen Fehler, die Sie berichtet.
Ich Verstand nicht, Ihre Aktualisierung und so schrieb ich eine batch-Datei mit dem folgenden in es:
Tun, dies hat mir geholfen, zu sehen, wo alle Passwörter wurden. Ursprünglich hatte ich kopiert und eingefügt, die Befehle, ohne Sie zu Lesen. Ich habe nicht bemerkt, dass einige der Befehle, hatte Passwörter, die eingebettet in Ihnen. Plötzlich Ihre aktualisierten post gemacht, viel mehr Sinn für mich.
Jeder andere mit den gleichen Problemen, jederzeit, sehen Sie "changeit" in der bat-Datei, die ich schrieb, ändern Sie Sie auf Ihr Passwort.
Werden Sie auch wollen, ändern Sie die Computername, Abteilung, Organisation, Staat und Land, in dem script oben.
Nun JBoss erscheint, dass die Gründung richtig für mich.
Danke für den Beitrag und aktualisieren.
In meinem Fall das keystore-Kennwort und alias-Passwort anders waren. Sie muss werden die gleichen (In der Tomcat zumindest).
Einen anderen Grund für diesen Fehler ist, dass der keystore wird mit high-grade-Verschlüsselung. Wenn das stimmt, müssen Sie zum installieren der Java Cryptography Extension zur Erhöhung der java encryption-level-support (standardmäßig nicht aktiviert durch den US-export-Regeln)
Überprüfen Sie diese JCE installieren mini-howto, wie dies zu tun.
Den JCE für jre7 ist hier.
Für diejenigen, die noch mit jre6, überprüfen Sie diese link.