在连接到服务器时,我们会收到如下错误:
<errorCode>101500</errorCode><errorMessage>Error in Sender</errorMessage>
除了“发件人错误”之外,还有其他方法可以获取有关原因的更多信息吗?
注意:在 SSL 传输发送方中,我为 HostnameVerifier 设置了 AllowAll
<transportSender name="https" class="org.apache.synapse.transport.passthru.PassThroughHttpSSLSender">
<parameter name="non-blocking" locked="false">true</parameter>
<parameter name="http.proxyHost" locked="false">internet.proxy</parameter>
<parameter name="http.proxyPort" locked="false">8080</parameter>
<parameter name="http.nonProxyHosts" locked="false">localhost</parameter>
<parameter name="HostnameVerifier">AllowAll</parameter>
这是一些更详细的日志(wso2-esb-errors.log)。请注意,有时消息会正确传送到远程服务器。远程服务器由我无法控制的客户维护。
2016-08-30 05:06:51,995 [-] [HTTPS-Sender I/O dispatcher-1] ERROR TargetHandler I/O error: Received fatal alert: handshake_failure
javax.net.ssl.SSLException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1666)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1634)
at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1800)
at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1083)
at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:907)
at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
at org.apache.http.nio.reactor.ssl.SSLIOSession.doUnwrap(SSLIOSession.java:228)
at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:263)
at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:391)
at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:119)
at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:159)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:338)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586)
at java.lang.Thread.run(Thread.java:745)
发生此错误的原因有很多。请参阅下面的参考资料了解更多详细信息。
- 不相容密码套件由客户端和服务器使用。这
需要客户端使用(或启用)一个密码套件
由服务器支持。
- 不兼容的版本SSL使用中(服务器可能只接受TLS
v1,而客户端只能使用 SSL v3)。再次,
客户端可能必须确保它使用兼容版本SSL/TLS协议。
- 服务器证书的信任路径不完整;服务器的
证书可能不受客户端信任。这通常会
导致更详细的错误,但这很有可能。通常情况下
修复方法是将服务器的CA证书导入到客户端的信任中
店铺。
参考:收到致命警报:通过 SSLHandshakeException 握手失败 https://stackoverflow.com/questions/6353849/received-fatal-alert-handshake-failure-through-sslhandshakeexception
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)