【问题标题】:WebLogic 12 SSLKeyException: Hostname verification failed after restartWebLogic 12 SSLKeyException:重新启动后主机名验证失败
【发布时间】:2015-02-17 11:26:36
【问题描述】:

我在 WebLogic 12.1.2.0.0 上部署了一个 WAR 文件。应用程序通过 HTTPS 调用 Web 服务。在 DemoTrust.jks 中导入证书。所有 SSL 相关设置都应该正确。实际上它可以工作,但是在服务器重新启动后它不能工作大约 15-20 分钟,之后它又开始工作。在此期间,控制台会打印以下错误:

<Warning> <Security> <BEA-090504> <Certificate chain received from xxx.xxxxxxxx.xxx.com - 
167.107.80.230 failed hostname verification check. Certificate contained xxx.xxxxxxxx.xxx.com 
but check expected xxx.xxxxxxxx.xxx.com>

在收到警告后:

javax.xml.ws.WebServiceException: javax.net.ssl.SSLKeyException: Hostname verification failed: 
HostnameVerifier=weblogic.security.utils.SSLWLSHostnameVerifier,hostname=xxx.xxxxxxxx.xxx.com.

在上面的警告中,包含的域和预期的域是相同的。

感谢您的帮助!

-E

【问题讨论】:

  • 您确定所包含的内容完全符合预期吗?您是否尝试过关闭主机名验证?在管理控制台Servers -&gt; server name -&gt; Configuration SSL tab -&gt; Advanced -&gt; Change Hostname Verification dropdown to None
  • 嗨,我确定。是的,我尝试将此下拉列表更改为无。仍然是相同的行为。

标签: ssl-certificate weblogic12c


【解决方案1】:

我在控制台上所做的更改对我没有帮助(控制台 -> 服务器 -> {服务器名称} -> SSL -> 高级 -> 自定义主机名验证器或无) 之后在 setDomainEnv 文件上编辑 JAVA_OPTIONS 属性。 没有验证,​我知道这不是一个很好的解决方案,但它挽救了我的一天。 添加以下行

   -Dweblogic.security.SSL.ignoreHostnameVerification=true

【讨论】:

    【解决方案2】:

    set JAVA_OPTIONS=%JAVA_OPTIONS% -DUseSunHttpHandler=true 帮助了我。尝试将此行添加到 WebLogic setDomainEnv.(cmd|sh) 文件中。这个参数的目的是告诉WebLogic使用Sun的HttpHandler,不要使用WebLogic一个。

    【讨论】:

      【解决方案3】:

      如果这是证书名称中的通配符问题(例如,weblogic 默认验证器认为 *.salesforce.com 的证书不涵盖 cs86.salesforce.com),WebLogic 实际上提供了一个自定义验证器来使用:@987654322 @。该值应在服务器的 SSL 配置中输入Console -&gt; Servers -&gt; {Server Name} -&gt; SSL -&gt; Advanced -&gt; Custom Hostname Verifier

      【讨论】:

      • 这听起来像是更好的解决方案。不幸的是,当使用 weblogic.security.utils.SSLWLSWildcardHostnameVerifier 将验证程序设置为自定义时,我仍然会收到错误消息。 Weblogic 似乎仍然使用默认验证器 weblogic.security.utils.SSLWLSHostnameVerifier。我重新启动了服务器,我正在使用 WLS 12.1.3
      • 相关文档可以在blogs.oracle.com/sravansarraju/entry/…找到,但对我不起作用。
      • 是关于 weblogic.security.utils.SSLWLSWildcardHostnameVerifier 或 weblogic.security.utils.SSLWLSHostnameVerifier 的错误消息吗?如果是后者,您是否在修改后应用了 weblogic 控制台中的更改?
      • 这应该是保持验证活动的解决方案(而不是将验证者设置为无,降低安全性)。
      • Excelente me funciono perfecto。
      【解决方案4】:

      管理控制台服务器 -> 服务器名称 -> 配置 SSL 选项卡 -> 高级 -> 将主机名验证下拉菜单更改为无

      这对我有用。

      【讨论】:

      • 此解决方案通过不验证主机名来降低安全级别。
      猜你喜欢
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-15
      • 2017-02-05
      • 2023-03-22
      相关资源
      最近更新 更多