我们有几个.cer
个文件,并使用keytool命令导入密钥库。现在我们使用该密钥库配置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)
任何帮助将不胜感激。
答案 0 :(得分:1)
如果您已从CA签署证书,则无法使用keytool将私钥导入密钥库。您需要使用PKCS12格式的openssl导入private.key。然后使用keytool生成密钥库。
假设您有以下可用文件
步骤:
$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
答案 1 :(得分:0)
请阅读Wildfly-8 SSL setup guide的链接。 StackOverflow上已经询问过A similar question,也许这也可以指导你。最后,两个非现场链接here和here可能会对此问题有所了解。
您没有包含您的配置(相关部分)以及您采取了哪些步骤,因此除了我在评论中所说的内容之外,很难说出任何其他内容。
基本上你应该做什么:
生成密钥。使用keytool,OpenSSL,....使用keytool的示例:
$ keytool -genkey -alias foo -keyalg RSA -keystore foo.keystore -validity 10950
配置WildFly。基于上一个的示例:
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" redirect-port="443" />
<connector name="https" scheme="https" protocol="HTTP/1.1" socket-binding="https" enable-lookups="false" secure="true">
<ssl name="foo-ssl" password="secret" protocol="TLSv1" key-alias="foo" certificate-key-file="../standalone/configuration/foo.keystore" />
</connector>
...
</subsystem>
第一步中生成的密钥应该转到certificate-key-file="<path>"
配置的目录。