gpt4 book ai didi

tomcat - 为 JBoss 5.1.0 GA 设置 HTTPS

转载 作者:行者123 更新时间:2023-11-28 22:34:39 27 4
gpt4 key购买 nike

我正在将我的应用程序从 HTTP 迁移到 HTTPS,但似乎遇到了问题。

这是我到目前为止基于 these instructions 所做的事情:

  1. 确定托管服务器的计算机的主机名。即:这些说明的本地主机
  2. 确定 jBoss 服务器类型(全部、默认、生产)。即:这些说明的 ecotrak
  3. jBoss 建议使用同一个文件作为 keystore 和信任库。这将是 server.keystore。在初始安装中,default/conf 文件夹中不应有 server.keystore。如果您有,您必须决定是删除它(使用这些说明)还是修改说明以适合您的情况。
  4. 创建 keystore 和私钥:
    • 打开命令提示符或 shell 并转到 default/conf 文件夹。
    • keytool -genkey -alias jbosskey -keypass changeit -keyalg RSA -keystore server.keystore
    • 回答提示。当要求输入名字/姓氏时使用 myHostname。这很关键。
    • server.keystore 已生成。
    • keytool -list -keystore server.keystore
    • 您应该在列表中看到名为 jbosskey 的 PrivateKeyEntry。
  5. 生成并存储证书。
    • keytool -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
    • 您会收到一条警告,指出它已存在于 keystore 中。忽略它。这是因为 Java 需要单独的 keystore 和信任库文件,而我们只使用一个。
    • keytool -list -keystore server.keystore
    • 您应该在 list 中看到一个名为 jbosscert 的 TrustedCertEntry。

在我的 server.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)

部署错误:

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' **

关于这里发生的事情有什么想法吗?


更新

我发现我的错误 - 我混淆了 keystore 和证书之间的密码。修复后,我现在可以在 HTTPS 下运行网站

最佳答案

我按照上面的说明进行操作,但遇到了与您报告的相同的错误。我不明白你的更新,所以我写了一个包含以下内容的批处理文件:

c:
cd "/opt/fg/jboss-5.1.0.GA/server/default/conf"
REM create the server.keystore file - will fail if it already exists
keytool -genkey -alias jbosskey -keypass changeit -keyalg RSA -keystore server.keystore -storepass changeit -dname "CN=localhost, OU=MY_DEPARTMENT, O=MY_COMPANY, L=MY_CITY, S=MY_STATE, C=US"

REM display what was made
keytool -list -keystore server.keystore -storepass changeit

REM generate and store the certificate
keytool -export -alias jbosskey -keypass changeit -file server.crt -keystore server.keystore -storepass changeit

keytool -import -alias jbosscert -keypass changeit -file server.crt -keystore server.keystore -storepass changeit

REM display what was made
keytool -list -keystore server.keystore -storepass changeit

这样做有助于我了解所有密码的设置位置。最初我没有阅读它们就复制并粘贴了命令。我没有注意到某些命令中嵌入了密码。突然之间,你更新的帖子对我来说更有意义了。

对于遇到同样问题的其他人,任何时候,如果您在我编写的 bat 文件中看到“changeit”,请将其更改为您的密码。

您还需要更改上面脚本中的计算机名称、部门、组织、州和国家/地区。

现在 JBoss 似乎在为我正确启动。

感谢发帖和更新。

关于tomcat - 为 JBoss 5.1.0 GA 设置 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4732045/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com