当前位置: 首页 > 知识库问答 >
问题:

weblogic ssl握手失败信任存储问题

公孙河
2023-03-14

当我试图在weblogic中调用https服务调用时,ssl握手失败。我已经将服务器证书添加到weblogic信任库——“cacerts”中。

用于在weblogic启动脚本中添加信任存储的命令:

     JAVA_OPTIONS="-Dweblogic.security.SSL.trustedCAKeyStore="/weblogic92/server/lib/cacerts" ${JAVA_OPTIONS}"

导出JAVA_选项

我是否遗漏了其他任何东西——修复此问题的任何指针?

使用SSLPoke.java测试了应用服务器盒中的ssl连接,并且成功了。

   java -Djavax.net.ssl.trustStore=/weblogic92/server/lib/cacerts 
   -Djavax.net.ssl.trustStorePassword=changeit SSLPoke 192.16.2.6 8443

Weblogic服务器日志跟踪:

       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
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1628)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:230)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:224)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1027)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:120)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:574)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:510)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:888)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1117)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:629)
    at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)

共有3个答案

杨高翰
2023-03-14

这是个问题。删除无意义的内部引号:

JAVA_OPTIONS="-Dweblogic.security.SSL.trustedCAKeyStore=/weblogic92/server/lib/c‌​acerts ${JAVA_OPTIONS}"
羊舌和安
2023-03-14

我知道这是一个非常古老的线程,但由于我面临着同样的挑战,当我的Web应用程序部署在Weblogic(12.1)上,通过HTTPS与外部Web服务通信,并通过各种解决方案最终使其工作时,很少有指针从我的工作中提供,希望它对将来的人有帮助。

甲骨文关于这个主题的官方文件可以在这里找到

How WebLogic Server Locates Trust
---------------------------------

WebLogic Server uses the following algorithm when it loads its trusted CA certificates:

1. If the keystore is specified by the -Dweblogic.security.SSL.trustedCAkeystore 
   command-line argument, load the trusted CA certificates from that keystore.
2. Else if the keystore is specified in the configuration file (config.xml), load 
   trusted CA certificates from the specified keystore. If the server is configured 
   with DemoTrust, trusted CA certificates will be loaded from the 
   WL_HOME\server\lib\DemoTrust.jks and the JDK cacerts keystores.
3. Else if the trusted CA file is specified in the configuration file (config.xml), 
   load trusted CA certificates from that file (this is only for compatibility 
   with 6.x SSL configurations).
4. Else load trusted CA certificates from WL_HOME\server\lib\cacerts keystore.

我尝试了选项1,即提供了cacert-Dweblogic的路径。安全SSL。trustedCAkeystore已在运行的JDK中的推荐信任库中导入证书,但它不起作用。虽然我知道导入是成功的,因为它与一个Java类一起工作,我编写这个Java类是为了通过在同一个JDK上但从Weblogic之外运行它来访问同一个HTTPS位置。

随后,我尝试了选项2,即在Democrust中导入证书。jks位于WL_HOME\server\lib\democrust。jks。这成功地允许我部署的web应用程序通过HTTPS与外部web服务通信

钮鸿煊
2023-03-14

你还可以尝试其他几件事:

>

  • 您是否也尝试过JAVA_OPTIONS=“${JAVA_OPTIONS}-Dweblogic.security.SSL.trustedCAKeyStore=/weblogic92/server/lib/cacerts”

    尝试使用控制台(服务器)添加证书-

    您可能还需要添加以下java选项:

    >

  • -Dweblogic.security.SSL。

    -德韦伯逻辑。安全SSL。使可能重新谈判=正确

    -dsun.security.ssl.allow不安全重新谈判=true

    在服务器中-

    选中使用服务器证书。

    将主机名验证更改为无

  •  类似资料:
    • 我正在尝试在我的Kafka服务器上启用SSL身份验证。我在Kafka文档中遵循7.2节。 遵循了所有步骤,但是当调用Producer.bat文件将数据发送到主题时,我得到了下面的错误。

    • 我正在学习SSL通信,我遇到了这个问题。我正在编写一个简单的客户端,它试图与本地apache服务器握手。服务器启用https。我将服务器证书添加到所有可能的信任存储(jdk中的一个 注意:我从以下教程中获取了代码: http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#KRB 停留

    • 我通过受ssl v3保护的cxf使用soap服务。我从服务器下载.cer文件,并通过keytool使用以下指令创建JKS文件: 在java代码中,我将此代码用于客户端配置: 对于调用此代码的服务: 当我运行代码时,会发生此错误: 我搜索此错误,我意识到该错误是针对不良信任存储的。但我不知道如何生成正确的信任库。

    • 我在使用硒测试时收到此错误 我现在的代码是 是否有其他方法可以忽略/解决此错误?

    • 我正在对我们的数据库服务进行超文本传输协议请求的大循环。一切都很好,但是每当我运行它时,在成功查询(看似随机)数量后,我都会收到以下错误:

    • 问题内容: 我正在尝试将Jenkins CI配置为对我们的项目执行持续集成,并且无法使其通过https连接到我们的SVN存储库。每当我尝试配置存储库URL并尝试连接时,都会遇到以下异常: 我在tomcat实例上启用了SSL调试(使用),并得到了以下信息: 我尝试按照这篇文章中的说明在tomcat中添加属性,但仍然出现相同的错误。 在这一点上,我对发生的事情完全感到困惑。不幸的是,我不是完全了解SS