I am trying to write my own web server in Java 8, and i am running into a very odd problem. Whenever i make an SSL connection with Chrome, it works just fine. When i try with Firefox (59.0.2), i was having connection problems, but only with cipher suites that use GCM. It seemed that after the SSL handshake, the request from the browser was never sent. Using wireshark, i saw that Firefox was sending Application Data in middle of the SSL handshake: From wireshark:
C = Client S = Server C —> S Client Hello C <— S Server Hello, Certificate, Server Key Exchange, Server Hello Done C —> S Client Key Exchange, Change Cipher Spec, Hello Request, Hello Request C —> S Application Data C <— S Change Cipher Spec C <— S Hello Request, Hello Request
To be sure I was not misunderstanding, I checked this out with Chrome, and with Firefox without GCM cipher suites, and none of them had Application Data sent in middle of the handshake. I checked other sites, like google.com, cnn.com, etc. and they are using GCM cipher suites without any problems on Firefox, so obviously this is a problem on my side.
Java 8 does not support ALPN, so it is not a TLS False Start. Any ideas what would cause the specific problem with Firefox and not with Chrome?