WebLogic 12 SSLKeyException:重新启动后主机名验证失败

eno*_*ace 11 ssl-certificate weblogic12c

我在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>
Run Code Online (Sandbox Code Playgroud)

警告后我得到:

javax.xml.ws.WebServiceException: javax.net.ssl.SSLKeyException: Hostname verification failed: 
HostnameVerifier=weblogic.security.utils.SSLWLSHostnameVerifier,hostname=xxx.xxxxxxxx.xxx.com.
Run Code Online (Sandbox Code Playgroud)

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

谢谢您的帮助!

-E

小智 15

如果它是关于通配符,例如weblogic默认验证程序不认为*.salesforce.com的证书涵盖cs86.salesforce.com,则weblogic实际上提供weblogic.security.utils.SSLWLSWildcardHostnameVerifier.我们只需要在控制台 - >服务器 - >服务器名称 - > SSL - >高级中将其设置为客户验证程序

  • 这应该是保持验证活动的解决方案(而不是将验证器设置为无,从而降低安全性)。 (3认同)

Jav*_*eek 9

admin console - > server name - > Configuration SSL选项卡 - > Advanced - > Change Hostname Verification下拉列表为None

这对我有用.

  • 此解决方案通过不验证主机名来降低安全级别. (7认同)

m19*_*190 6

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