I've added a new way of including protocols for the next release: https://issues.apache.org/jira/browse/CXF-6414
This allows you to have a TLS endpoint, but also to support SSLv2Hello if required. For example: <httpj:engine-factory id="tls-but-allow-ssl3"> <httpj:engine port="${testutil.ports.SSLv3Server.4}"> <httpj:tlsServerParameters> <sec:keyManagers keyPassword="password"> <sec:keyStore type="jks" password="password" resource="keys/Bethal.jks"/> </sec:keyManagers> <sec:trustManagers> <sec:keyStore type="jks" password="password" resource="keys/Truststore.jks"/> </sec:trustManagers> <sec:clientAuthentication want="true" required="false"/> <sec:includeProtocols> <sec:includeProtocol>SSLv3</sec:includeProtocol> <sec:includeProtocol>SSLv2Hello</sec:includeProtocol> </sec:includeProtocols> </httpj:tlsServerParameters> </httpj:engine> </httpj:engine-factory> Colm. On Thu, May 14, 2015 at 6:58 PM, boca2608 <boca2...@gmail.com> wrote: > Colm, > > While I cannot do logging on the client side, I did some logging on the > server side for this issue. I attached the portion of the log below. > > The log shows that the client started with sending a SSLv2Hello handshake > first (the client should have sent TSLv1Hello if it had read the server's > capabilities properly). But anyway, the SSLv2Hello was rejected by the > server, interestingly with a TLSv1.2 ALERT. In this case, the client only > supports TLSv1.0 (not TLSv1.1 and TLSv1.2). I suspect the client had > problem in processing the TLSv1.2 ALERT and gave up. > > Does this make sense? If yes, what should be the proper way to reject > SSLv2Hello? Apparently, that client could talk to an IIS using TLSv1.0 > successfully. > > Thank you very much for your help! > > > > > Using SSLEngineImpl. > 2015-05-14 13:12:28,121 [qtp426435961-26 Selector0 ] DEBUG nio > - created > SCEP@62320e8{l(/165.122.232.248:57180)<->r(/166.50.179.97:443 > ),s=0,open=true,ishut=false,oshut=false,rb=false,wb=false,w=true,i=0}-{SslConnection@658c6f68 > SSL NOT_HANDSHAKING i/o/u=-1/-1/-1 ishut=false oshut=false > {AsyncHttpConnection@3a4d68e6 > ,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-14,l=0,c=0},r=0}} > 2015-05-14 13:12:28,121 [qtp426435961-27 ] DEBUG ssl > - [Session-1, SSL_NULL_WITH_NULL_NULL] SslConnection@658c6f68 SSL > NOT_HANDSHAKING i/o/u=73/0/0 ishut=false oshut=false > {AsyncHttpConnection@3a4d68e6 > ,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-14,l=0,c=0},r=0} > NOT_HANDSHAKING filled=73/73 flushed=0/0 > Allow unsafe renegotiation: false > Allow legacy hello messages: true > Is initial handshake: true > Is secure renegotiation: false > Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 > for TLSv1 > Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 > for > TLSv1 > Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 for > TLSv1 > Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 > for TLSv1 > Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 for > TLSv1 > Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 for > TLSv1 > Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 for > TLSv1 > Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 > for TLSv1.1 > Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 > for > TLSv1.1 > Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 for > TLSv1.1 > Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 > for TLSv1.1 > Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 for > TLSv1.1 > Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 for > TLSv1.1 > Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 for > TLSv1.1 > qtp426435961-27, fatal error: 10: General SSLEngine problem > javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled > qtp426435961-27, SEND TLSv1.2 ALERT: fatal, description = > unexpected_message > qtp426435961-27, WRITE: TLSv1.2 Alert, length = 2 > qtp426435961-27, fatal: engine already closed. Rethrowing > javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled > 2015-05-14 13:12:28,152 [qtp426435961-27 ] DEBUG ssl > - > SCEP@62320e8{l(/165.122.232.248:57180)<->r(/166.50.179.97:443 > ),s=1,open=true,ishut=false,oshut=false,rb=false,wb=false,w=true,i=0r}-{SslConnection@658c6f68 > SSL NEED_WRAP i/o/u=73/0/0 ishut=false oshut=false > {AsyncHttpConnection@3a4d68e6 > ,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-14,l=0,c=0},r=0}} > javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled > at sun.security.ssl.InputRecord.handleUnknownRecord(Unknown Source) > at sun.security.ssl.InputRecord.read(Unknown Source) > at sun.security.ssl.EngineInputRecord.read(Unknown Source) > at sun.security.ssl.SSLEngineImpl.readRecord(Unknown Source) > at sun.security.ssl.SSLEngineImpl.readNetRecord(Unknown Source) > at sun.security.ssl.SSLEngineImpl.unwrap(Unknown Source) > at javax.net.ssl.SSLEngine.unwrap(Unknown Source) > at > org.eclipse.jetty.io.nio.SslConnection.unwrap(SslConnection.java:536) > at > org.eclipse.jetty.io.nio.SslConnection.process(SslConnection.java:359) > at > org.eclipse.jetty.io.nio.SslConnection.access$900(SslConnection.java:48) > at > > org.eclipse.jetty.io.nio.SslConnection$SslEndPoint.fill(SslConnection.java:678) > at org.eclipse.jetty.http.HttpParser.fill(HttpParser.java:1044) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:280) > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) > at > > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) > at > org.eclipse.jetty.io.nio.SslConnection.handle(SslConnection.java:196) > at > > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) > at > > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) > at > > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) > at > > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) > at java.lang.Thread.run(Unknown Source) > 2015-05-14 13:12:28,152 [qtp426435961-27 ] DEBUG > ChannelEndPoint - close > SCEP@62320e8{l(/165.122.232.248:57180)<->r(/166.50.179.97:443 > ),s=1,open=true,ishut=false,oshut=false,rb=false,wb=false,w=true,i=0!}-{SslConnection@658c6f68 > SSL NEED_WRAP i/o/u=73/0/0 ishut=false oshut=false > {AsyncHttpConnection@3a4d68e6 > ,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-14,l=0,c=0},r=0}} > 2015-05-14 13:12:28,152 [qtp426435961-27 ] DEBUG HttpParser > - > javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled > at sun.security.ssl.InputRecord.handleUnknownRecord(Unknown Source) > at sun.security.ssl.InputRecord.read(Unknown Source) > at sun.security.ssl.EngineInputRecord.read(Unknown Source) > at sun.security.ssl.SSLEngineImpl.readRecord(Unknown Source) > at sun.security.ssl.SSLEngineImpl.readNetRecord(Unknown Source) > at sun.security.ssl.SSLEngineImpl.unwrap(Unknown Source) > at javax.net.ssl.SSLEngine.unwrap(Unknown Source) > at > org.eclipse.jetty.io.nio.SslConnection.unwrap(SslConnection.java:536) > at > org.eclipse.jetty.io.nio.SslConnection.process(SslConnection.java:359) > at > org.eclipse.jetty.io.nio.SslConnection.access$900(SslConnection.java:48) > at > > org.eclipse.jetty.io.nio.SslConnection$SslEndPoint.fill(SslConnection.java:678) > at org.eclipse.jetty.http.HttpParser.fill(HttpParser.java:1044) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:280) > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) > at > > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) > at > org.eclipse.jetty.io.nio.SslConnection.handle(SslConnection.java:196) > at > > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) > at > > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) > at > > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) > at > > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) > at java.lang.Thread.run(Unknown Source) > 2015-05-14 13:12:28,152 [qtp426435961-27 ] DEBUG HttpParser > - HttpParser{s=-14,l=0,c=0} > org.eclipse.jetty.io.EofException > at org.eclipse.jetty.http.HttpParser.fill(HttpParser.java:1050) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:280) > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) > at > > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) > at > org.eclipse.jetty.io.nio.SslConnection.handle(SslConnection.java:196) > at > > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) > at > > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) > at > > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) > at > > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) > at java.lang.Thread.run(Unknown Source) > Caused by: javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled > at sun.security.ssl.InputRecord.handleUnknownRecord(Unknown Source) > at sun.security.ssl.InputRecord.read(Unknown Source) > at sun.security.ssl.EngineInputRecord.read(Unknown Source) > at sun.security.ssl.SSLEngineImpl.readRecord(Unknown Source) > at sun.security.ssl.SSLEngineImpl.readNetRecord(Unknown Source) > at sun.security.ssl.SSLEngineImpl.unwrap(Unknown Source) > at javax.net.ssl.SSLEngine.unwrap(Unknown Source) > at > org.eclipse.jetty.io.nio.SslConnection.unwrap(SslConnection.java:536) > at > org.eclipse.jetty.io.nio.SslConnection.process(SslConnection.java:359) > at > org.eclipse.jetty.io.nio.SslConnection.access$900(SslConnection.java:48) > at > > org.eclipse.jetty.io.nio.SslConnection$SslEndPoint.fill(SslConnection.java:678) > at org.eclipse.jetty.http.HttpParser.fill(HttpParser.java:1044) > ... 9 more > 2015-05-14 13:12:28,152 [qtp426435961-27 ] DEBUG > AsyncHttpConnection - Disabled read interest while writing > response SSL NEED_WRAP i/o/u=73/0/0 ishut=false oshut=false > {AsyncHttpConnection@3a4d68e6 > ,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=0,l=0,c=0},r=0} > 2015-05-14 13:12:28,152 [qtp426435961-27 ] DEBUG nio > - EOF > org.eclipse.jetty.io.EofException > at org.eclipse.jetty.http.HttpParser.fill(HttpParser.java:1050) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:280) > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) > at > > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) > at > org.eclipse.jetty.io.nio.SslConnection.handle(SslConnection.java:196) > at > > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) > at > > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) > at > > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) > at > > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) > at java.lang.Thread.run(Unknown Source) > Caused by: javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled > at sun.security.ssl.InputRecord.handleUnknownRecord(Unknown Source) > at sun.security.ssl.InputRecord.read(Unknown Source) > at sun.security.ssl.EngineInputRecord.read(Unknown Source) > at sun.security.ssl.SSLEngineImpl.readRecord(Unknown Source) > at sun.security.ssl.SSLEngineImpl.readNetRecord(Unknown Source) > at sun.security.ssl.SSLEngineImpl.unwrap(Unknown Source) > at javax.net.ssl.SSLEngine.unwrap(Unknown Source) > at > org.eclipse.jetty.io.nio.SslConnection.unwrap(SslConnection.java:536) > at > org.eclipse.jetty.io.nio.SslConnection.process(SslConnection.java:359) > at > org.eclipse.jetty.io.nio.SslConnection.access$900(SslConnection.java:48) > at > > org.eclipse.jetty.io.nio.SslConnection$SslEndPoint.fill(SslConnection.java:678) > at org.eclipse.jetty.http.HttpParser.fill(HttpParser.java:1044) > ... 9 more > 2015-05-14 13:12:28,152 [qtp426435961-27 ] DEBUG > ChannelEndPoint - close > SCEP@62320e8{l(/165.122.232.248:57180)<->r(0.0.0.0/0.0.0.0:443 > ),s=1,open=false,ishut=true,oshut=true,rb=false,wb=false,w=true,i=0!}-{SslConnection@658c6f68 > SSL NEED_WRAP i/o/u=73/0/0 ishut=false oshut=false > {AsyncHttpConnection@3a4d68e6 > ,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=0,l=0,c=0},r=0}} > 2015-05-14 13:12:28,152 [qtp426435961-26 Selector0 ] DEBUG nio > - destroyEndPoint > SCEP@62320e8{l(null)<->r(0.0.0.0/0.0.0.0:443 > ),s=0,open=false,ishut=true,oshut=true,rb=false,wb=false,w=true,i=0!}-{SslConnection@658c6f68 > SSL NEED_WRAP i/o/u=73/0/0 ishut=false oshut=false > {AsyncHttpConnection@3a4d68e6 > ,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=0,l=0,c=0},r=0}} > 2015-05-14 13:12:28,152 [qtp426435961-26 Selector0 ] DEBUG > AbstractHttpConnection - closed > AsyncHttpConnection@3a4d68e6 > ,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=0,l=0,c=0},r=0 > > > > > -- > View this message in context: > http://cxf.547215.n5.nabble.com/CXF-3-0-4-server-cannot-receive-message-from-TLS1-0-client-tp5756863p5757267.html > Sent from the cxf-user mailing list archive at Nabble.com. > -- Colm O hEigeartaigh Talend Community Coder http://coders.talend.com