2016-01-14 4 views
1

У нас есть несколько файлов .cer и импортировать их в хранилище ключей с помощью команды keytool. Теперь мы настраиваем протокол Wildfly 8.x с этим хранилищем ключей. Когда начинать, мы получаем следующие ошибки:Невозможно найти ключи в хранилище ключей при настройке wildfly

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) 

Любая помощь будет оценена по достоинству.

+1

Из сообщения об ошибке: * к хранилищу /home/demo/mykeystore.jks не содержат какую-либо клавишу *. Вы проверяли, содержит ли этот файл ключ? –

+0

Не могли бы вы помочь мне более подробно? Мы не генерируем никакого keypaire и импортируем сертификацию только с параметрами keytool -import -trustcacert. –

ответ

0

Пожалуйста, прочитайте ссылку на Wildfly-8 SSL setup guide. A similar question был задан в StackOverflow, возможно, это тоже поможет вам. Наконец, две ссылки за пределы участка 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>".

+0

Привет, TT, я считаю, что наша конфигурация для дикой природы прекрасна. Единственная проблема возникает из хранилища ключей. Если мы сначала выполним «$ keytool -genkey -alias foo -keyalg RSA -keystore foo.keystore -validity 10950», а затем импортируем коммерческий сертификат, https может работать, но на страницах «https» в браузере появится красный крест Адресная строка.Если мы не используем «keytool -genkey ......» и напрямую импортируем коммерческий сертификат, в файле журнала будет найдена ошибка «не содержит никаких ключей». –

+0

@LiBin Разработайте «импорт коммерческого сертификата» ... какие шаги вы предпринимаете? –

+0

Да. В частности, мы следуем этому по одному: https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/638/37/certificate-installation-java-based-web-servers-tomcat- с использованием-Keytool –

1

Если вы подписали сертификат от CA, тогда keytool не может использоваться для импорта закрытого ключа в хранилище ключей. Вам нужно импортировать private.key с помощью openssl в формате PKCS12 &, затем используйте keytool для создания хранилища ключей.

Предполагая, что вы имеете в наличии следующие файлы

  • частного key.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