Конфигурация HTTPS для контейнера Tomcat - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь настроить HTTPS-коннектор для контейнера Tomcat9, используя docker. Я следовал инструкциям по Inte rnet, и вот что я сделал:

$ keytool -genkey -keystore /usr/local/tomcat/foobar -alias foobar -keyalg RSA 

для создания файла хранилища ключей. Затем я изменил tomcat / conf / server. xml

<Connector port="8443"
SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false"
sslProtocol="TLS" keystoreFile="/usr/local/tomcat" keystorePass="foobarPass" keyAlias="foobar"/>

После этого я фиксирую образ и использую

docker exec -it containerid catalina.sh run

, и я продолжаю получать эту ошибку:

24-Feb-2020 11:14:32.682 SEVERE [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[HTTP/1.1-8443]]
        org.apache.catalina.LifecycleException: Protocol handler initialization failed
                at org.apache.catalina.connector.Connector.initInternal(Connector.java:983)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.core.StandardService.initInternal(StandardService.java:533)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1057)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.startup.Catalina.load(Catalina.java:584)
                at org.apache.catalina.startup.Catalina.load(Catalina.java:607)
                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:498)
                at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:303)
                at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
        Caused by: java.lang.IllegalArgumentException: Invalid keystore format
                at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:99)
                at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71)
                at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:218)
                at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1142)
                at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1155)
                at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:575)
                at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:74)
                at org.apache.catalina.connector.Connector.initInternal(Connector.java:980)
                ... 13 more
        Caused by: java.io.IOException: Invalid keystore format
                at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:663)
                at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56)
                at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)
                at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70)
                at java.security.KeyStore.load(KeyStore.java:1445)
                at org.apache.tomcat.util.security.KeyStoreUtil.load(KeyStoreUtil.java:69)
                at org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:217)
                at org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:206)
                at org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:283)
                at org.apache.tomcat.util.net.openssl.OpenSSLUtil.getKeyManagers(OpenSSLUtil.java:98)
                at org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:247)
                at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:97)
                ... 20 more

Другая информация:

  • Файл моего хранилища ключей находится в / usr / local / tomcat и имеет расширение .keystore.
  • Я уже проверил, правильный ли пароль.
  • В $ JAVA_HOME / jre / lib / security / java .security у меня есть: keystore.type = jks и keystore.type.compat = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...