2015-10-25 2 views
1

Я пытаюсь настроить SSL в свой новый проект. Я делаю это в первый раз, и у меня есть некоторые проблемы.Tomcat 8: Неверный формат хранилища ключей

Некоторые пункты к проектам:

Часть моего server.xml:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" 
      maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
      keystoreFile="/PATHTO/src/main/resources/keystore.p12" 
      keystorePass="STOREPASS" clientAuth="false" sslProtocol="TLS" /> 

Часть моих application.properties:

spring.profiles.active=https 
server.port=8443 
server.ssl.key-store=classpath:keystore.p12 
server.ssl.key-store-password=STOREPASS 
server.ssl.keyStoreType=PKCS12 
server.ssl.keyAlias=tomcat 

Команда, я использую для генерируют хранилище ключей:

keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 

И keystore.p12 находится в той же папке, что и application.properties.

Ошибка консоли:

java.io.IOException: Invalid keystore format 
    at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:650) 
    at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55) 
    at java.security.KeyStore.load(KeyStore.java:1445) 
    at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:437) 
    at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:336) 
    at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:594) 
    at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:534) 
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:363) 
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:732) 
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:457) 
    at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:120) 
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:960) 
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:567) 
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:851) 
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
    at org.apache.catalina.startup.Catalina.load(Catalina.java:576) 
    at org.apache.catalina.startup.Catalina.load(Catalina.java:599) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484) 

Есть кто-нибудь идеи?

Спасибо. Cheers.

+0

Вы не объявляете 'keyStoreType = PKCS12' в' server.xml', кажется (по умолчанию 'JKS'). –

+0

Я добавил keyStoreType = "PKCS12" в server.xml, но у меня были те же ошибки. – emoleumassi

+0

Вы уверены, что путь в 'keystoreFile' можно получить? –

ответ

1

Необходимо указать keyStoreType, так как формат PKCS12, а не JKS.

+0

Посмотрите на комментарии, ОП уже пробовал это. –

+0

@MickMnemonic Итак, он утверждает, но это по-прежнему правильный ответ, если у него нет коррумпированного файла. – EJP

1

Чтобы подробно разобраться с ответом и деталями EJP на Mick Mnemonic, это не совсем правильно.

OP не установлено, что в server.xml скорее application.properties

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" 
     maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
     keystoreFile="/PATHTO/src/main/resources/keystore.p12" 
     keystorePass="STOREPASS" clientAuth="false" sslProtocol="TLS" 
     keystoreType="PKCS12" /> 

Вы заметите, что в последней строке элемента «Коннектор» я добавил keystoreType = «PKCS12», чтобы разъем для правильной загрузки файла.

Ваша трассировка стека является мертвой отдачей на этом.

+0

В комментариях конкретно говорится о 'server.xml', а не' application.properties': «Я добавил keyStoreType =« PKCS12 »в server.xml, но у меня были те же ошибки» –

+0

Приносим извинения за это, но это остается проблемой. –

+0

Не обязательно. Вы получите то же сообщение об ошибке, если 'keystore.p12' был поврежден/поврежден. Вы также можете получить такую ​​же ошибку, если путь был недоступен, поскольку исключение сигнализирует об очень общем сбое ввода-вывода (см. Строку 650 в [JavaKeyStore.java] (http://grepcode.com/file/repository.grepcode.com/ Java/корень/JDK/OpenJDK/8u40-b25/вС/безопасность/поставщик/JavaKeyStore.java # JavaKeyStore)). –

 Смежные вопросы

  • Нет связанных вопросов^_^