我正在将我的应用程序从HTTP移动到HTTPS,似乎遇到了问题。为JBoss 5.1.0设置HTTPS GA
这里是我做了什么,到目前为止基于关闭的these instructions:
- 识别主机托管服务器的计算机。 I.e .:本地主机的这些指令
- 确定jBoss服务器类型(全部,默认,生产)。 I.e .:这些指令的ecotrak
- jBoss建议使用与keystore和trustore相同的文件。这将是server.keystore。在处女安装中,default/conf文件夹中应该没有server.keystore。如果有,请决定是删除它(使用这些说明)还是根据您的情况调整说明。
- 创建密钥库和私钥:
- 打开命令提示符或shell并转到默认/ conf文件夹。
- keytool -genkey -alias jbosskey -keypass changeit -keyalg RSA -keystore server.keystore
- 回答提示。询问名字/姓氏时使用myHostname。这很关键。
- server.keystore生成。
- keytool -list -keystore server.keystore
- 您应该在列表中看到名为jbosskey的PrivateKeyEntry。
- 生成并存储证书。
- 密钥工具-export -alias jbosskey -keypass的changeit -file server.crt这-keystore server.keystore
- server.crt这被生成。
- keytool -import -alias jbosscert -keypass changeit -file server.crt -keystore server.keystore
- 您会收到一条警告,表明它已经存在于密钥库中。忽略它。这是因为Java期望单独的密钥库和可信赖文件,并且我们只使用一个。
- keytool -list -keystore server.keystore
- 您应该在列表中看到一个名为jbosscert的TrustedCertEntry。
在我的服务器上。XML我有以下几点:
<!-- 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" />
当我开始我的服务器如下:
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
以下是我在我的日志文件中获取:
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)
的另一部分日志
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)
部署我N错误:
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' **
对这里发生的事情有任何理想?
更新
我发现我的错误 - 我已经混了密钥库和证书的密码。一旦被固定,我现在能够在HTTPS