A bit late to this discussion but the issues sound familiar.

I've seen this type of issue in the past between openssl and java's ssl
implementation, primarily in java 6 and java 7.  I don't remember the
full details but from what I recall avoiding the EC based ciphers from
the supported list resolves the issue.

The following are some references that should help clarify:

-
http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html#SunEC
- https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/1006776
- https://bugzilla.redhat.com/show_bug.cgi?id=1022017

For our java apps behind haproxy we limited their supported ciphers to:
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 # for TLS 1.2
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA    # for TLS 1.1

TLS1.1 is required for testing with libssl based clients, otherwise we'd
have left that out.

Hope this helps.

Jinn

On 23/02/2015 21:55, NuSkooler wrote:
> Attached is the information you requested -- and hopefully performed
> correctly :)
> 
> * no_haproxy.pcap: This is a successful connection + POST to the
> original Mochiweb server. Note that here the port is 8443 not 443
> (IP=10.3.3.3)
> * ha_self_signed.pcap: Failed attempt against HAProxy with a self
> signed certificate & key.
> * TEST_cert_and_key.pem: The self signed cert/key from above.
> 
> The bind line for ha_self_signed.pcap looks like this:
> bind *:443 ssl crt /home/bashby/Lukas/TEST_cert_and_key.pem ciphers AES128-SHA
> 
> Thanks again to you and everyone here taking the time to look at this!
> 
> On Mon, Feb 23, 2015 at 2:01 PM, Lukas Tribus <luky...@hotmail.com> wrote:
>> Ok, so as expected, this didn't really change anything, but at least
>> we have a config/capture consistency.
>>
>> Now, it looks like the client decides after the (what appears to be a
>> successful) handshake to close the connection by sending a FIN, which
>> then triggers the "400 Bad request" from the haproxy side.
>>
>> Two questions we need address:
>> - how does the handshake look like in the legacy config (Mochiweb terminates
>>   SSL) when using those old apps/clients?
>> - what happens on from a SSL/TLS perspective on the unencrypted layer?
>>
>>
>> So, could you possibly:
>> - send us a working SSL/TLS session pcap trace of those clients/app on your
>>   current mochiweb service? Perhaps the client is buggy on all but a specific
>>   ciphers, although he advertises otherwise. If we replicate the mochiweb SSL
>>   handshake as close as possible, we may be able to get it to work, and then 
>> we
>>   can start pin pointing the issue. For example, we could try to force:
>>   TLS_RSA_WITH_RC4_128_MD5 by configuring "RC4-MD5" as cipher string in 
>> haproxy.
>>
>> - recreate the issue with a self-signed key/cert and a non-FS ciphers,
>>   and provide us pcap, cert and private key (triple checking none of
>>   those thing are confidential)? That way, we see what happens inside the
>>   encrypted channel. Since the client doesn't really send any application 
>> data,
>>   what we are most interested in are encrypted handshake messages.
>>
>>
>> Its pretty clear the Mozilla recommendation doesn't help us in this case, 
>> since
>> there seems to be a specific implementation bug, so we may as well use non-FS
>> ciphers for the troubleshooting session.
>>
>>
>>
>> Regards,
>>
>> Lukas
>>
>>

Reply via email to