首页 文章

配置自定义标识的Weblogic受管服务器和Truststore使用jre truststore

提问于
浏览
0

我创建了一个带有托管服务器的Weblogic 12c域,我在其上安装了SOA Suite 12.2 . 为了能够在我的复合中通过SSL调用REST服务,我创建了一个带有有效证书链的信任库,以通过SSL连接到REST服务器 .

我使用/u01/data/keystores/identitykeystore.jks中的自定义标识存储和/u01/data/keystores/truststore.jks中的信任库为SOA托管服务器创建了自定义标识和自定义信任 .

使用REST服务调用组合时,我得到一个远程故障

<bpelFault><faultType>0</faultType><remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>oracle.fabric.common.FabricInvocationException: javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target</summary></part><part name="code"><code>null</code></part><part name="detail"><detail>unable to find valid certification path to requested target</detail></part></remoteFault></bpelFault></fault><faultType>
<message>0</message></faultType></messages>

在de server.out中,在调用报告无法找到有效证书路径的服务后不久发现java异常

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

收到的证书链是预期的,根CA,中间和服务器证书 . (也从server.out中提取)

原因似乎是weblogic没有使用配置的自定义信任库,而是使用默认的Java信任库 . (是的,nodemanager,admin和托管服务器已重新启动)这解释了为什么认证路径无效,但目前还不知道如何解决此问题 .

<Jun 23, 2016 10:15:27 PM CEST> <Info> <Management> <BEA-141107> <Version: WebLogic Server 12.2.1.0.0 Tue Oct  6 10:05:47 PDT 2015 1721936>
trustStore is: /usr/java/jdk1.8.0_92/jre/lib/security/cacerts
trustStore type is : jks
trustStore provider is :
init truststore
adding as trusted cert:
  Subject: CN=Equifax Secure Global eBusiness CA-1, O=Equifax Secure Inc., C=US

欢迎提出任何建议,提示或解决方案!

  • 更新1 -

在“Fusion Middleware Securing Oracle WebLogic Server”文档中找到以下内容

How WebLogic Server Locates Trust

WebLogic Server在加载其可信CA证书时使用以下算法:

  • 如果密钥库由-Dweblogic.security.SSL.trustedCAkeystore命令行参数指定,则从该密钥库加载可信CA证书 .

  • 否则,如果在配置文件(config.xml)中指定了密钥库,则从指定的密钥库加载可信CA证书 . 如果服务器配置了DemoTrust,则将从WL_HOME \ server \ lib \ DemoTrust.jks和JDK cacerts密钥库加载可信CA证书 .

  • 否则,如果在配置文件(config.xml)中指定了可信CA文件,则从该文件加载可信CA证书(这仅用于与6.x SSL配置兼容) .

  • 否则从WL_HOME \ server \ lib \ cacerts密钥库加载可信CA证书 .

未使用参数-Dweblogic.security.SSL.trustedCAkeystore,因此应从自定义信任库加载受信任的CA证书 .

  • 更新2 -

对于出站Web服务绑定,Oracle SOA Suite使用JRF HttpClient,因此使用Sun JDK库进行SSL . 因此,必须将-Djavax.net.ssl.trustStore = your_truststore_location添加到startweblogic.sh中的JAVA_OPTIONS

将truststore属性添加到JAVA_PROPERIES后,将在server.out文件中记录以下内容 .

soa_server1.out:/u01/data/domains/soa12c/bin/setDomainEnv.sh:line 384:-Djava.net.ssl.trustStore = / u01 / data / keystores / truststore.jks:没有这样的文件或目录

文件存在,域用户具有对jks文件的文件访问权限 .

2 回答

  • 0

    这是行不通的,因为你所提出的任何内容都会被Demo Trust覆盖 . 如果您需要管理服务器bin路径并打开setDomainEnv并搜索Demo,您将看到Demo trust JKS . 删除它,然后重新启动您的SOA服务器 .

  • 0

    一个关于错误位置的引用.....

    我最初alreadt从setDomainEnv.sh中的JAVA_PROPERTIES中删除了java属性-Djava.net.ssl.trustStore . 并为他的信任库放置了一个新属性-Djava.net.ssl.trustStore . 但把它放在外面 - 包含JAVA_PROPERTIES内容的双引号 . 这就解释了为什么它违反了cacerts ..

相关问题