Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-14851

Http2SolrClient doesn't handle keystore type correctly

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 8.8
    • Server
    • None

    Description

      I wanted to use Solr SSL using bcfks keystore type. Even after specifying the following JVM properties, Solr was not able to start: -Djavax.net.ssl.keyStoreType=bcfks -Djavax.net.ssl.trustStoreType=bcfks -Dsolr.jetty.truststore.type=bcfks -Dsolr.jetty.keystore.type=bcfks

      The error message in the log:

      2020-09-07 14:42:29.429 ERROR (main) [   ] o.a.s.c.SolrCore null:org.apache.solr.common.SolrException: Error instantiating shardHandlerFactory class [HttpShardHandlerFactory]: java.io.IOException: Invalid keystore format
              at org.apache.solr.handler.component.ShardHandlerFactory.newInstance(ShardHandlerFactory.java:56)
              at org.apache.solr.core.CoreContainer.load(CoreContainer.java:660)
              at org.apache.solr.servlet.SolrDispatchFilter.createCoreContainer(SolrDispatchFilter.java:262)
              at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:182)
              at org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:134)
              at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$0(ServletHandler.java:751)
              at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
              at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:742)
              at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:742)
              at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:647)
              at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:744)
              at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:360)
              at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1445)
              at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1409)
              at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:822)
              at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:275)
              at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
              at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
              at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:46)
              at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:188)
              at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:513)
              at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:154)
              at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:173)
              at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:447)
              at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:66)
              at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:784)
              at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:753)
              at org.eclipse.jetty.util.Scanner.scan(Scanner.java:641)
              at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:540)
              at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
              at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:146)
              at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
              at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:599)
              at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:249)
              at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
              at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
              at org.eclipse.jetty.server.Server.start(Server.java:407)
              at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
              at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
              at org.eclipse.jetty.server.Server.doStart(Server.java:371)
              at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
              at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$0(XmlConfiguration.java:1888)
              at java.security.AccessController.doPrivileged(Native Method)
              at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1837)
              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.eclipse.jetty.start.Main.invokeMain(Main.java:218)
              at org.eclipse.jetty.start.Main.start(Main.java:491)
              at org.eclipse.jetty.start.Main.main(Main.java:77)
      Caused by: java.lang.RuntimeException: java.io.IOException: Invalid keystore format
              at org.apache.solr.client.solrj.impl.Http2SolrClient.createHttpClient(Http2SolrClient.java:223)
              at org.apache.solr.client.solrj.impl.Http2SolrClient.<init>(Http2SolrClient.java:153)
              at org.apache.solr.client.solrj.impl.Http2SolrClient$Builder.build(Http2SolrClient.java:836)
              at org.apache.solr.handler.component.HttpShardHandlerFactory.init(HttpShardHandlerFactory.java:321)
              at org.apache.solr.handler.component.ShardHandlerFactory.newInstance(ShardHandlerFactory.java:51)
              ... 50 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.eclipse.jetty.util.security.CertificateUtils.getKeyStore(CertificateUtils.java:54)
              at org.eclipse.jetty.util.ssl.SslContextFactory.loadKeyStore(SslContextFactory.java:1188)
              at org.eclipse.jetty.util.ssl.SslContextFactory.load(SslContextFactory.java:323)
              at org.eclipse.jetty.util.ssl.SslContextFactory.doStart(SslContextFactory.java:245)
              at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
              at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
              at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
              at org.eclipse.jetty.client.HttpClient.doStart(HttpClient.java:244)
              at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
              at org.apache.solr.client.solrj.impl.Http2SolrClient.createHttpClient(Http2SolrClient.java:221)
              ... 54 more
      

      Attachments

        1. SOLR-14851-01.patch
          1 kB
          Andras Salamon
        2. SOLR-14851-02.patch
          2 kB
          Andras Salamon

        Issue Links

          Activity

            People

              janhoy Jan Høydahl
              asalamon74 Andras Salamon
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m