Hi,
I'm experiencing a problem with creating an SSL Connector in Tomcat 7.0.26. We intend to use a database-based keystore, which means that we are using a custom-made Provider which does not use the 'keystoreFile' tag. To try to prevent Tomcat from trying to open a file we specify the Connector in this way: <Connector SSLEnabled="true" URIEncoding="UTF-8" clientAuth="false" keyAlias="TestCert" keystoreFile="" keystoreType="Custom" port="443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS"/> This used to work in Tomcat 6.0.32, but when we upgraded to Tomcat 7.0, this exception gets thrown in the error stream : SEVERE: Failed to load keystore type Custom with path E:\Program Files\Application\configuration\services\tomcat\ due to E:\Program Files\Application\configuration\services\tomcat (Access is denied) java.io.FileNotFoundException: E:\Program Files\Application\configuration\services\tomcat (Access is denied) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(Unknown Source) at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFac tory.java:400) at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocket Factory.java:306) at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESoc ketFactory.java:565) at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESoc ketFactory.java:505) at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory .java:449) at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocke tFactory.java:158) at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:378) at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:5 54) at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:409) at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11J sseProtocol.java:119) at org.apache.catalina.connector.Connector.initInternal(Connector.java:956) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.core.StandardService.initInternal(StandardService.ja va:559) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java :815) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.startup.Catalina.load(Catalina.java:594) at org.apache.catalina.startup.Catalina.load(Catalina.java:619) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449) Is this a bug in Tomcat 7.0 or is there an alternative method we're supposed to use in order to prevent it from loading a keystoreFile from the file system? I took a look at the source through a debugger and found the area in JSSESocketFactory where it reads this file, and it seems as though specifying "" doesn't work correctly anymore because it tries to map a relative path to catalina.base