我们有几个 .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/