我们被这个 Java 错误所困扰
http://bugs.sun.com/view_bug.do?bug_id=7016078
我们应用的解决方案是将这个参数-Dcom.sun.net.ssl.enableECC=false添加到 JVM。
现在的问题是,如果上面的参数禁用了 ECC,将使用什么加密?显然,我相信它会退回到 RSA。如果是这种情况,在协商将使用 ECC 的地方时,将在那个地方使用什么来代替 ECC?
我们被这个 Java 错误所困扰
http://bugs.sun.com/view_bug.do?bug_id=7016078
我们应用的解决方案是将这个参数-Dcom.sun.net.ssl.enableECC=false添加到 JVM。
现在的问题是,如果上面的参数禁用了 ECC,将使用什么加密?显然,我相信它会退回到 RSA。如果是这种情况,在协商将使用 ECC 的地方时,将在那个地方使用什么来代替 ECC?
您可以通过使用-Djava.net.debug=ssl
, 在 ClientHello 部分下看到这一点
普通的:
Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
和-Dcom.sun.net.ssl.enableECC=false
Cipher Suites: [TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
(这是在 Windows 上 - 我在 Red Hat 上的 OpenJDK 上注意到,它没有任何区别)