我配置了自定义标识密钥库和自定义信任密钥库。配置是正确的,因为在日志中我可以看到:
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调试日志显示在建立连接时使用了错误的密钥库。
<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密钥库?
答案 0 :(得分:0)
从服务器设置的角度来看:
如果密钥库由-Dweblogic.security.SSL.trustedCAKeyStore
命令行参数指定,则将始终从该密钥库加载受信任的CA证书。首先由weblogic检查此参数。我们将它放在startWebLogic.cmd文件中。
您是使用托管服务器和管理服务器运行还是只运行管理服务器?使 确保所有服务器都具有在“密钥库”选项卡(自定义标识,自定义信任)上设置的标识和信任路径。
正在加载的错误密钥库是JRE提供的默认“demo”。
从服务器上运行的应用程序的角度来看:
您可以在命令行上执行操作,也可以通过
在应用程序中设置它们 System.setProperty("javax.net.ssl.trustStore", trustPath)
您还可以设置ssl.properties文件,然后将其提供给您的应用,例如:
-Dssl.properties=$HOME/.keystore/ssl.properties
你可以在这里找到一个示例ssl.properties文件:http://rundeck.org/docs/administration/ssl.html但我相信还有更多/更好的例子。