我正在尝试拨打salesforce.com的服务电话。 我已经将证书链添加到我的密钥库,但是当服务validation域证书时,它将被挂在CN的子域部分的通配符上,但这是我直接从该站点获取的证书。 我发现WebLogic不支持证书CN中的通配符。 是否有可能修改CN而不使证书无效。
从WebLogic OSB中testing服务时发生的错误是:
调用导致错误:[安全性:090504]证书链从sensis-proxy-vs.sensis.com.au – 161.117.32.128 – > cs5.salesforce.com收到失败的主机名validation检查。 证书包含* .salesforce.com,但检查预期的cs5.salesforce.com。
这里的问题是,WebLogic的默认主机名validation器不支持CN包含主机名的通配符的SSL证书。
可以更改WebLogic的主机名称validation程序,并且WebLogic附带可以使用通配符validationCN的类。
转至WebLogicpipe理控制台 – >环境 – >服务器 – >您的服务器 – >configuration – > SSL
点击“locking和编辑”
打开“高级”襟翼
将“BEA Hostname Verifier”中的“Hostname Verification”更改为“Custom Hostname Verifier”
将“自定义主机名validation程序”设置为weblogic.security.utils.SSLWLSWildcardHostnameVerifier
点击“保存”,然后点击“激活更改”
重新启动您的服务器。
朋友,你正在寻找与weblogic服务器debuggingSSL问题?
错误:
FINE: ……….. Eating Exception ………. java.security.NoSuchAlgorithmException: Algorithm ECDH not available + at javax.crypto.KeyAgreement.getInstance(DashoA13*..)+
原因:
这就像客户端和服务器无法在通用密码(algorithm)上协商,因此握手失败。
只是给你一个简单的想法:密码由客户端初始化,服务器必须select客户端提供的任何一个密码来通过SSL进行通信。 如果服务器不支持这种客户端通用的密码algorithm,那么通信就不会发生。
因此,如果可以强制客户端(Weblogic)使用较弱的密码,并且服务器对使用有限的密码没有任何约束,那么我们可以通过SSL进行连接。
parsing度:
默认情况下,Weblogic Server使用SSL的certicom实现。
以上例外是因为SSL的certicom实现不能获得通用的密码协商。
我们可以告诉Weblogic服务器使用SUN的SUN实现来解决这个问题。
为了使用SSL的SUN实现,我们可以在Weblogic服务器中使用以下属性:
所有上述属性都可以用作JAVA属性,以便WLS JVM使用这些值而不是使用自己的实现。
我们也可以在我们的代码中使用上面的属性,如下所述:
System.setProperty( “javax.net.ssl.keyStore”, “***” ); System.setProperty( “javax.net.ssl.keyStoreType”, “JKS” ); System.setProperty( “javax.net.ssl.keyStorePassword”, “***” ); System.setProperty( “javax.net.ssl.trustStore”, “***” ); System.setProperty( “javax.net.ssl.trustStoreType”, “JKS” ); System.setProperty( “javax.net.ssl.trustStorePassword”, “***” ); Security.addProvider( new com.sun.net.ssl.internal.ssl.Provider() ); System.setProperty( “java.protocol.handler.pkgs”, “com.sun.net.ssl.internal.www.protocol” );
注 – 对于SSL运行时debugging,也可以使用pipe理控制台。 用于服务器login到pipe理控制台>>>>服务器>>> MS1 >>>debugging>>>> weblogic树>>>> ssl选项。 检查选项并点击启用。
转至WebLogicpipe理控制台 – >环境 – >服务器 – >您的服务器 – >configuration – > SSL
打开“高级”襟翼
将“BEA Hostname Verifier”中的“Hostname Verification”更改为“None”
点击“保存”
重新启动您的服务器。
或者,我们可以像下面那样工作。
以上答案#设置“设置”自定义主机名validation“到weblogic.security.utils.SSLWLSWildcardHostnameVerifier”没有为我工作。
我已经完成了它为我工作的以下步骤:
去的
WebLogicpipe理控制台 – >环境 – >服务器 – >您的服务器 – >configuration – > SSL
点击“locking和编辑”
打开“高级”襟翼
将“BEA Hostname Verifier”中的“Hostname Verification”更改为“None”
点击“保存”,然后点击“激活更改”
重新启动您的服务器。
和连接到这个启用SSL的环境的客户端应用程序,我已经运行java与以下-D选项:
-Dweblogic.security.SSL.ignoreHostnameVerification=true
现在,我可以从客户端应用程序连接到启用SSL的环境。在内部,我的客户端需要在Weblogic服务器中使用启用了t3s(SSL)的JMS。 它解决了我在客户端应用程序中遇到的以下exception:
javax.naming.CommunicationException: t3s://slc09kty.MYHost.com:7202: Destination 10.XX.XX.164, 7202 unreachable; nested exception is: javax.net.ssl.SSLKeyException: Hostname verification failed: