我配置了自定义身份 keystore 和自定义信任 keystore 。配置正确,因为在日志中我可以看到:
Loading the identity certificate and private key stored under the alias wlserver from the jks keystore file C:\home\dev\keystore
Loading trusted certificates from the jks keystore file C:\home\dev\truststore
在部署的应用程序中,我有一个 MDB,它通过 JMS 使用安全通道读取 MQ 中的消息。 SSL 调试日志显示在建立连接时使用了错误的 keystore 。
<Jul 5, 2013 5:04:01 PM CEST> <Notice> <Stdout> <BEA-000000> <trustStore provider is :>
<Jul 5, 2013 5:04:01 PM CEST> <Notice> <Stdout> <BEA-000000> <trustStore type is : jks>
<Jul 5, 2013 5:04:01 PM CEST> <Notice> <Stdout> <BEA-000000> <init truststore>
<Jul 5, 2013 5:04:01 PM CEST> <Notice> <Stdout> <BEA-000000> <trustStore is: C:\home\projects\jdk\jre\lib\security\cacerts>
<Jul 5, 2013 5:04:01 PM CEST> <Notice> <Stdout> <BEA-000000> <init keymanager of type SunX509>
<Jul 5, 2013 5:04:01 PM CEST> <Notice> <Stdout> <BEA-000000> <init keystore>
<Jul 5, 2013 5:04:01 PM CEST> <Notice> <Stdout> <BEA-000000> <keyStore provider is :>
如果我通过指定 -Djavax.net.ssl.trustStore -Djavax.net.ssl.keyStore -Djavax.net.ssl.keyStorePassword
启动 weblogic,则安全 MDB 连接有效。
我应该如何配置 Weblogic,以便我部署的应用程序使用 Weblogic keystore ?
最佳答案
从服务器设置的角度:
如果 keystore 由 -Dweblogic.security.SSL.trustedCAKeyStore
命令行参数指定,受信任的 CA 证书将始终从该 keystore 加载。这个参数首先由 weblogic 检查。我们把它放在我们的 startWebLogic.cmd 文件中。
您是使用托管服务器和管理服务器运行还是只使用管理服务器?制作 确保所有服务器都在 keystore 选项卡(自定义身份、自定义信任)上设置了身份和信任路径。
正在加载的不正确 keystore 是 JRE 提供的默认“演示”。
从服务器上运行的应用程序的角度来看:
您可以通过命令行或通过在应用程序中设置它们来执行您所做的操作
System.setProperty("javax.net.ssl.trustStore", trustPath)
您还可以设置一个 ssl.properties 文件,然后将其提供给您的应用,例如:
-Dssl.properties=$HOME/.keystore/ssl.properties
您可以在此处找到示例 ssl.properties 文件:http://rundeck.org/docs/administration/ssl.html但我相信还有更多/更好的例子。
关于java - 将 Weblogic keystore 用于 Websphere MQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17671337/