如何在weblogic或java中为链证书启用信任

时间:2013-12-07 18:36:21

标签: java ssl weblogic-10.x

我在weblogic 10.3.6上运行了一个Oracle服务总线域,在集群中有2个托管服务器。 我们在此域上部署了代理服务,该服务转到外部业务服务以验证地址。此业务服务正在侦听SSL端口,SSL证书具有EntrustCACert> IntermidateCert1> IntermidateCert2> ServerCert

问题:在连接测试期间出现以下错误 -

常规运行时错误:[安全:090548]从ws2.site1.com - 197.109.80.xxx收到的证书链包含缺少基本约束的V3 CA证书。

我尝试过的解决方案:

1)在启动脚本中添加了JAVA_OPTIONS =“$ {JAVA_OPTIONS} -Dweblogic.security.SSL.enforceConstraints = off”,它解决了问题。但我被告知这不是首选的方式,并使用信任密钥库来实现。

2)为了实现信任,我在一个名为DSperian.pem的文件中以下列相反的顺序EntrustCACert> IntermidateCert1> IntermidateCert2> ServerCert复制了所有4个证书,并在Jrockit cacerts文件中导入(/apps/Oracle/jrockit-jdk1.6.0 _31-R28.2.3-4.1.0 / jre / lib / security / cacerts)使用下面的命令,但得到相同的上述错误。     keytool -import -alias DSperian -trustcacerts -file DSperian.pem -keystore cacerts

问题: 如果我以正确的方式导入证书以建立信任,请告诉我。所以我的OSB域将盲目地信任业务服务(Web服务)并忽略 “基本约束”错误。我是否需要使用特定于weblogic的信任密钥库文件,但此OSB weblogic是否在非ssl端口上运行? 还有其他选择吗?要求业务服务更新其证书以包含“基本约束”不是一种选择。

1 个答案:

答案 0 :(得分:1)

您的证书确实存在问题。

安全证书具有一组约束,允许它们执行某些功能(或将它们限制为某些功能)。

查看每个证书并确保它们分配了适合该任务的约束。

要获取有关错误的更多详细信息,请在Web逻辑服务器中启用SSL调试,将以下内容添加到服务器启动脚本

-Dssl.debug=true -Dweblogic.StdoutDebugEnabled=true

More information in Configure SSL in WebLogic server

使用以下命令验证您的梯形校正

java utils.ValidateCertChain -jks my key mykeystore

然后,提供根证书的人需要解决您的问题。