You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Oleg Kalnichevski (Commented) (JIRA)" <ji...@apache.org> on 2012/02/07 15:44:59 UTC
[jira] [Commented] (HTTPASYNC-10) SSL handshake fails and no error
is reported back to the client
[ https://issues.apache.org/jira/browse/HTTPASYNC-10?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13202435#comment-13202435 ]
Oleg Kalnichevski commented on HTTPASYNC-10:
--------------------------------------------
Could you please try to reproduce this issue with the latest SVN snapshot of HttpAsyncClient and let me know if the problem still persists?
Oleg
> SSL handshake fails and no error is reported back to the client
> ---------------------------------------------------------------
>
> Key: HTTPASYNC-10
> URL: https://issues.apache.org/jira/browse/HTTPASYNC-10
> Project: HttpComponents HttpAsyncClient
> Issue Type: Bug
> Affects Versions: 4.0-alpha3
> Environment: Windows
> Reporter: Rosen Anastasov
> Fix For: 4.0-alpha4
>
>
> SSL handshake fails and no error is reported back to the client. This effectively makes the client to wait forever as the callback is not called.
> The exact place that this happens is during handshake in SSLIOSession.sendEncryptedData(), in int bytesWritten = this.session.channel().write(this.outEncrypted);
> At this moment the server prints a stack trace of an exception:
> javax.net.ssl.SSLHandshakeException: null cert chain
> at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1611)
> at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:187)
> at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:177)
> at com.sun.net.ssl.internal.ssl.ServerHandshaker.clientCertificate(ServerHandshaker.java:1206)
> at com.sun.net.ssl.internal.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:148)
> at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516)
> at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454)
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139)
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)
> at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:675)
> at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> And the client fails to detect that the connection was not established correctly. The client stack trace when the serve exception is thrown is:
> SSLIOSession.sendEncryptedData() line: 286
> SSLIOSession.outboundTransport() line: 346
> DefaultClientIODispatch(AbstractIODispatch<T>).outputReady(IOSession) line: 151
> BaseIOReactor.writable(SelectionKey) line: 181
> BaseIOReactor(AbstractIOReactor).processEvent(SelectionKey) line: 346
> BaseIOReactor(AbstractIOReactor).processEvents(Set<SelectionKey>) line: 320
> BaseIOReactor(AbstractIOReactor).execute() line: 280
> BaseIOReactor.execute(IOEventDispatch) line: 106
> AbstractMultiworkerIOReactor$Worker.run() line: 599
> Thread.run() line: 619
> The state of the SSLIOSession at this momment is:
> this SSLIOSession (id=40) 127.0.0.1:56496<->127.0.0.1:9099[ACTIVE][rw:w][ACTIVE][NEED_UNWRAP][0][0][109][0]
> appBufferStatus DefaultAsyncClientConnection (id=47) http-outgoing-0 [ACTIVE]
> appEventMask 5 5
> channel SSLIOSession$InternalByteChannel (id=49) org.apache.http.nio.reactor.ssl.SSLIOSession$InternalByteChannel@38d341
> defaultMode SSLMode (id=50) CLIENT
> endOfStream FALSE FALSE
> handler SSLLayeringStrategy$InternalSSLSetupHandler (id=52) org.apache.http.nio.conn.ssl.SSLLayeringStrategy$InternalSSLSetupHandler@dafa2
> inEncrypted HeapByteBuffer (id=54) java.nio.HeapByteBuffer[pos=0 lim=16665 cap=16665]
> initialized TRUE TRUE
> inPlain HeapByteBuffer (id=76) java.nio.HeapByteBuffer[pos=0 lim=16660 cap=16660]
> outEncrypted HeapByteBuffer (id=77) java.nio.HeapByteBuffer[pos=109 lim=16665 cap=16665]
> outPlain HeapByteBuffer (id=78) java.nio.HeapByteBuffer[pos=0 lim=16660 cap=16660]
> session IOSessionImpl (id=79) 127.0.0.1:56496<->127.0.0.1:9099[ACTIVE][rw:w]
> sslEngine SSLEngineImpl (id=81) 1829ea2[SSLEngine[hostname=localhost port=9099] SSL_NULL_WITH_NULL_NULL]
> status 0 0
> I suppose this can be cause by some configuration error, but still the client should not be dying silently.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org