Hi tomcaters,
I have a problem which evades me for a too long time. I am just unable to find out what is wrong. I have a Tomcat 7.0.72 (version doesn't matter the problem exists with 7.0.68 and 7.0.70 as well) with Oracle JDK 1.8.0_102 (the version doesn't matter much neither since the problem manifests with 1.8.0_92, 1.8.0_77 as well). My Tomcat is unable to complete its TLSv1.2 handshaking protocol. I am getting this in my log when enabling SSL debug: ------------------- *** ClientHello, TLSv1.2RandomCookie: GMT: -1507805229 bytes = { 111, 107, 93, 180, 22, 176, 151, 182, 118, 207, 100, 218, 44, 244, 231, 167, 14, 64, 248, 62, 57, 126, 137, 35, 76, 84, 30, 245 }Session ID: {}Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, Unknown 0xcc:0xa9, Unknown 0xcc:0xa8, Unknown 0xcc:0x14, Unknown 0xcc:0x13, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA]Compression Methods: { 0 }Extension renegotiation_info, renegotiated_connection: <empty>Extension server_name, server_name: [type=host_name (0), value=hostname.domainname.tld]Unsupported extension type_23, data:Unsupported extension type_35, data:Extension signature_algorithms, signature_algorithms: SHA512withRSA, SHA512withECDSA, SHA384withRSA, SHA384withECDSA, SHA256withRSA, SHA256withECDSA, SHA1withRSA, SHA1withECDSAUnsupported extension status_request, data: 01:00:00:00:00Unsupported extension type_18, data:Unsupported extension type_30032, data:Extension ec_point_formats, formats: [uncompressed]Extension elliptic_curves, curve names: {unknown curve 29, java.security.spec.ECParameterSpec@2b839e7c, java.security.spec.ECParameterSpec@55e0b1ed}***%% Initialized: [Session-1, SSL_NULL_WITH_NULL_NULL]%% Negotiating: [Session-1, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]*** ServerHello, TLSv1.2 -------------------------- The key message seems to be: Extension elliptic_curves, curve names: {unknown curve 29, java.security.spec.ECParameterSpec@2b839e7c, java.security.spec.ECParameterSpec@55e0b1ed} I should get something with a list of recognized curves. Later, when the server will complete the handshaking with a fatal error, it will obviously fail agreeing on the curve and share parameters. Like this: ------------------------- ****** ECDH ServerKeyExchangeSignature Algorithm SHA512withRSAServer key: com.rsa.cryptoj.o.fn@a9c1e230*** ServerHelloDone -------------------------- Where I should get the name of the curve and the parameters for the shared secret. Since I have some other instances on the same server running just fine. I wonder what I should look for. What can lead to this failure? Yes, I have the Unlimited JCE Policy installed and working for other instances of Tomcat 8. Both Tomcat 8 and Tomcat 7 on this server share the very same JDK. In the Firefox browser, the message is as follow: Unsupported elliptic curve. Error code: SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE Which is the most descriptive message among the three following browsers: IE 11, Chrome and Firefox. IE11 and Chrome are complaining about TLS protocol error without saying anything about the cause of the error. Any hints? Regards, ----------------- Daniel Savard