0

我配置了自定义身份密钥库和自定义信任密钥库。配置是正确的,因为在日志中我可以看到:

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 :>

如果我通过指定启动 weblogic -Djavax.net.ssl.trustStore -Djavax.net.ssl.keyStore -Djavax.net.ssl.keyStorePassword,则安全 MDB 连接有效。

我应该如何配置 Weblogic,以便我部署的应用程序使用 Weblogic 密钥库?

4

1 回答 1

0

从服务器设置的角度来看:

如果 keystore 由-Dweblogic.security.SSL.trustedCAKeyStore命令行参数指定,则将始终从该 keystore 加载受信任的 CA 证书。此参数首先由 weblogic 进行检查。我们把它放在我们的 startWebLogic.cmd 文件中。

您是使用托管服务器和管理服务器运行还是仅使用管理服务器运行?确保您的所有服务器都在 Keystores 选项卡(自定义身份、自定义信任)上设置了身份和信任路径。

正在加载的不正确的密钥库是 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但我确信那里有更多/更好的示例。

于 2013-07-16T15:31:40.957 回答