DemoIdentity DemoTrust密钥库不能与Weblogic上的标准SOAP客户端一起使用

时间:2014-11-10 22:22:19

标签: java soap weblogic

我编写了一个在Web应用程序中调用的SOAP客户端。它使用Spring的 WebServiceGatewaySupport ,后者又使用标准的java HTTP(S)UrlConnection。我连接的服务器要求双方进行对等身份验证。证书是私钥。使用标准的Java密钥库引导...

,客户端可以很好地运行作为测试用例
    System.setProperty("javax.net.ssl.trustStore", new File(cert).getAbsolutePath());
    System.setProperty("javax.net.ssl.trustStorePassword", certPassword);
    System.setProperty("javax.net.ssl.keyStore", new File(cert).getAbsolutePath());
    System.setProperty("javax.net.ssl.keyStorePassword", certPassword);

问题是当我尝试在Weblogic中使用这个SOAP客户端时。我已经为JRocket的cacerts,DemoTrust和DemoIdentity密钥库添加了密钥。结果就好像DemoIdentity和DemoTrust根本没有被应用。将密钥加载到 cacerts 后,客户端信任服务器。服务器网关以 403 Forbidden 响应,这正是设置信任存储时的测试用例所发生的情况,而不是密钥库(标识)。

1 个答案:

答案 0 :(得分:2)

Keystores Config

使用自定义密钥库配置服务器时,如果您的密钥是由标准证书颁发机构签名(包括JDK和#),请转到密钥库选项卡并将其更改为自定义标识和Java标准信任 39;可信CA的列表)。如果是自签名,请使用自定义身份和自定义信任

保存后,输入密钥库的完整路径,类型(通常为 jks )和密钥库的密码。如果需要,对自定义信任执行相同的操作。

SSL配置

更改了上述内容后,SSL选项卡现在允许您指定自定义标识。将私钥别名更改为将私钥导入密钥库时使用的值。如果您的私钥是使用密码短语生成的,请填写私钥密码短语字段(注意: 与密钥库密码短语相同)。

点击高级并勾选使用服务器证书选项,这将告诉Weblogic在执行出站SSL呼叫时使用上面配置的证书和密钥。


保存上述选项后,Weblogic会告诉您"不需要重启"。这不是真的,你肯定需要重启服务器。如果您拖动启动日志,您应该看到以下内容以指示您正在使用自定义密钥库:

<BEA-090171> <Loading the identity certificate and private key stored under the alias [YOUR_ALIAS] from the jks keystore file [PATH_TO_YOUR_KEYSTORE].>

Weblogic也可能记录以下内容:

weblogic.security.CustomIdentityKeyStoreFileName = /u01/app/oracle/middleware/weblogic/server/lib/DemoIdentity.jks

错误地表明它使用默认的身份密钥库,但这只是启动参数,因此只要记录上一行,就可以安全地忽略它。