jboss - 配置 Wildfly 时无法在 keystore 中找到 key

标签 jboss wildfly wildfly-8 keytool

我们有几个 .cer 文件并使用 keytool 命令导入到 keystore 中。现在我们使用该 keystore 配置 Wildfly 8.x SSL。启动时,我们得到如下错误:

 22:38:56,992 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.server.controller.management.security_realm.UndertowRealm.key-manager: org.jboss.msc.service.StartException in service jboss.server.controller.management.security_realm.UndertowRealm.key-manager: WFLYDM0083: The KeyStore /home/demo/mykeystore.jks does not contain any keys.
    at org.jboss.as.domain.management.security.FileKeystore.assertContainsKey(FileKeystore.java:169)
    at org.jboss.as.domain.management.security.FileKeystore.load(FileKeystore.java:120)
    at org.jboss.as.domain.management.security.FileKeyManagerService.start(FileKeyManagerService.java:145)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

任何帮助将不胜感激。

最佳答案

如果您有来自 CA 的签名证书,则不能使用 keytool 将私钥导入 keystore 。您需要使用 PKCS12 格式的 openssl 导入 private.key,然后使用 keytool 生成 keystore 。

假设您有以下可用文件

  • 私钥.pem
  • AddTrustExternalCARoot.crt
  • COMODORSAAddTrustCA.crt
  • COMODORSADomainValidationSecureServerCA.crt
  • YOUR_DOMAIN_com.crt 或 STAR_YOUR_DOMAIN_com.crt(来自 CA 的签名证书)

步骤:

$cat AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt > ssl-bundle.crt

$openssl pkcs12 -export -chain -in STAR_YOUR_DOMAIN_com.crt -inkey 
 private-key.pem -out keystore.p12 -name YOURDOMAIN -CAfile ssl-bundle.crt

现在可以使用keytool导入

$keytool -importkeystore -destkeystore keystore.jks -srckeystore keystore.p12 -alias YOURDOMAIN

关于jboss - 配置 Wildfly 时无法在 keystore 中找到 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34793074/

相关文章:

java - JDBC 数据源使用 WEB-INF/lib 中的 jar 文件,而不是创建新的 Jboss 模块

java - 在 Netty (Java) 中,如何将接收到服务器的消息转发到另一个服务器?

ssl - 带有 Windows-My 或 Windows-ROOT 证书的 Jboss/Wildfly SSL

oracle - 带有 Oracle 的 Jboss XA 数据源无法打开连接

java - 在 Wildfly9 中访问 http 时,正在下载一个空白的下载文件

java - Eclipse:尝试通过 Wildfly 创建工厂时出现 "Failed to connect to any server"

ubuntu - Wildfly 8.1 的 Intellij IDEA 服务器配置权限问题

java - 如何在 Wildfly 8.2.0 中的 server.log 文件中禁用日志记录应用程序日志

java - 让耳朵部署以编程方式将自身标记为失败

java - 在 Tomcat 中运行 WAR 在 WildFly 中失败