Hello,

I am attempting to upgrade from Tomcat 7 to 8.5.6. Everything was working
great until I enabled SSL with a self-signed certificate. I am able to
recreated the issue on 8.5.5. I finally had to down graded to 8.5.4 to get
SSL working with identical configuration and cert.

I want to be sure that this is not a known issue and that I'm not doing
something wrong before I create a bug report.

Server version:        Apache Tomcat/8.5.5 64-bit
OS Name:               Windows 7
JVM Version:           1.8.0_102-b14

The cert was generated with this command:
    keytool -genkeypair -keyalg RSA -alias tomcat -keystore
"C:/keys/keystore.jsk" -storepass changeit -validity 360 -keysize 2048
-dname CN=localhost,OU=ITS,O=Co,L=City,ST=AB,C=CA

Configuration includes adding
-Djavax.net.ssl.trustStore=c:/keys/keystore.jsk to JAVA_OPTS and using this
connector config

    <Connector port="8002" protocol="HTTP/1.1"
               connectionTimeout="60000"
               maxThreads="200"
               minSpareThreads="4"
               enableLookups="false"
               compression="on"
               server="Apache"
               scheme="https" secure="true" SSLEnabled="true"
               keystoreFile="c:/keys/keystore.jsk" keystorePass="changeit"
keyAlias="tomcat"
               clientAuth="false" sslProtocol="TLS"/>

Here is the exception I get at startup

13-Oct-2016 15:05:17.309 SEVERE [main]
org.apache.coyote.AbstractProtocol.init Failed to initialize end point
associated with ProtocolHandler ["https-openssl-nio-8001"]
 java.lang.IllegalArgumentException:
java.security.InvalidAlgorithmParameterException: the trustAnchors
parameter must be non-empty
 at
org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:103)
 at
org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:81)
 at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:244)
 at
org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:866)
 at
org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:213)
 at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:575)
 at
org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:65)
 at org.apache.catalina.connector.Connector.initInternal(Connector.java:944)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
 at
org.apache.catalina.core.StandardService.initInternal(StandardService.java:549)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
 at
org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:873)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:606)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:629)
 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:311)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:494)
Caused by: java.security.InvalidAlgorithmParameterException: the
trustAnchors parameter must be non-empty
 at
java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
 at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:157)
 at
java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:130)
 at
org.apache.tomcat.util.net.jsse.JSSEUtil.getParameters(JSSEUtil.java:341)
 at
org.apache.tomcat.util.net.jsse.JSSEUtil.getTrustManagers(JSSEUtil.java:273)
 at
org.apache.tomcat.util.net.openssl.OpenSSLUtil.getTrustManagers(OpenSSLUtil.java:93)
 at
org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:101)
 ... 20 more


Thanks in advance


Will

Reply via email to