2014-11-08 20:07 GMT+03:00 Konstantin Kolinko <knst.koli...@gmail.com>:
> 2014-11-03 12:52 GMT+03:00 Violeta Georgieva <miles...@gmail.com>:
>> The proposed Apache Tomcat 7.0.57 release is now available for voting.
>>
>
> Testing on Win7 with 32-bit JDKs
> 1. All tests are passing with JDK 6u45 + 7u72 combo (compiling with
> 6u45, all tests are run with 7u72) with all BIO, NIO, APR.
>
> 2. If I run the tests with JDK 6u45 only, the following tests are
> consistently failing with BIO and succeeding with NIO and APR:
>
> org.apache.tomcat.util.net.TestClientCert
> org.apache.tomcat.util.net.TestCustomSsl
> org.apache.tomcat.util.net.TestSsl
>
> The failure in all cases is
> javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
>
>
> Quick recipe for reproduction is to use the following settings in
> build.properties:
> 1) Remove/comment the value for java.7.home if you have set one
> 2) Set
> test.name=org/apache/tomcat/util/net/**/Test*.java
>
>
> It is odd that NIO tests do pass.
> For APR most of those tests are skipped, so no much wonder.

The tests pass if I add the following line to TestCustomSsl.java and
TesterSupport.java.:

[[[
   connector.setProperty("sslEnabledProtocols", "TLSv1,TLSv1.1,SSLv2Hello");
]]]

Patch that I used:
  
https://people.apache.org/~kkolinko/patches/2014-11-09_tc7_Java6_SSLHello.patch

If I remove "SSLv2Hello" from the above value the tests with BIO fail.
Why the tests pass with NIO connector is a mystery for me.


I feared that NIO would have SSLv3 enabled by default, but I verified
that SSLv3 is disabled

a) OpenSSL cannot connect with SSLv3 protocol. I used the followin command:

openssl s_client -connect localhost:8443 -ssl3 -msg

WhenIf I explicitly enable "SSLv3" with sslEnabledProtocols attribute,
then OpenSSL can connect with SSLv3.

Connector configuration:
<Connector
 port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
 address="127.0.0.1"
 sslProtocol="tls"
 keystoreFile="${catalina.base}/conf/localhost.jks"
 truststoreFile="${catalina.base}/conf/ca.jks"
 secure="true"
 SSLEnabled="true"
 />

The localhost.jks and ca.jks files were copied to conf directory from
/test/org/apache/tomcat/util/net\/

b) If I add the following line to logging.properties,
[[[
  org.apache.tomcat.util.net.jsse.JSSESocketFactory.level = FINE
]]]
then I see log messages that SSLv2Hello and SSLv3 were disabled when
running the tests.

FINE: The SSL protocol [SSLv2Hello] which is enabled by default in
this JRE was excluded from the defaults used by Tomcat
FINE: The SSL protocol [SSLv3] which is enabled by default in this JRE
was excluded from the defaults used by Tomcat
(...)
FINE: Specified SSL protocols that are supported and enableable are :
[TLSv1, SSLv2Hello]
FINE: Some specified SSL protocols are not supported by the SSL engine
: [TLSv1.1]


Smoke testing is OK.

I think we are OK to release this.

The test has to be patched to enable SSLv2Hello. (As an alternative
solution, maybe there a way to disable SSLv2Hello at the client side
of the connection ?)

My vote:

 [X] Stable - go ahead and release as 7.0.57 Stable

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to