keystore格式问题 – 作为docker容器的骆驼项目

我正在创build一个camel项目的docker container 。 我从这里创build了密钥库文件。 这些密钥库文件放在servicemix > etc文件夹中。 现在,当我正常运行骆驼项目它正常运行。

现在,当我为camel项目创buildDocker容器时,我已经移动了src > main > resources的keystore文件夹,并在camelcontext.xml使用了 –

 <property name="maxConnections" value="10" /> <property name="connectionFactory"> <bean class="org.apache.activemq.ActiveMQSslConnectionFactory"> <property name="brokerURL" value="${karaf-local.url}" /> <property name="userName" value="${karaf-local.userName}" /> <property name="password" value="${karaf-local.passwordEncrypted}" /> <property name="keyStore" value="keystores/client.ks" /> <property name="keyStorePassword" value="${keyStorePassword}" /> <property name="trustStore" value="keystores/client.ts" /> <property name="trustStorePassword" value="${trustStorePassword}" /> </bean> </property> 

其他值来自我的configuration文件。 但是,当我使用docker run命令创build容器时,我得到错误 –

尝试将新的连接添加到池时出错; 嵌套exception是javax.jms.JMSException:无法创build传输。 原因:java.io.IOException:密钥库格式无效

在运行java -jar命令时,我有一个选项可以添加-Djavax.net.ssl.keyStoreType=pkcs12 。 但吨返回相同的错误。 我也试过 –

  • -Djavax.net.ssl.keyStoreType=PKS -Djavax.net.ssl.trustStoreType=PKS
  • -Djavax.net.ssl.keyStoreType=pkcs12-Djavax.net.ssl.trustStoreType=pkcs12

在尝试第二个选项,我得到下面的错误s

java.net.SocketException:java.security.NoSuchAlgorithmException:构造实现时出错(algorithm:默认,提供程序:SunJSSE,类:sun.security.ssl.SSLContextImpl $ DefaultSSLContext)

java.io.IOException:DerInputStream.getLength():lengthTag = 109,太大了。

尝试将新的连接添加到池时出错; 嵌套exception是javax.jms.JMSException:无法创build传输。 原因:java.io.IOException:密钥库格式无效