diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2SecurityUtil.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2SecurityUtil.java index 2ddd16f63c..e0450fba58 100644 --- a/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2SecurityUtil.java +++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2SecurityUtil.java @@ -34,26 +34,51 @@ public final class Http2SecurityUtil { * href="https://wiki.mozilla.org/Security/Server_Side_TLS#Non-Backward_Compatible_Ciphersuite">Mozilla Cipher * Suites in accordance with the HTTP/2 Specification. + * + * According to the + * JSSE documentation "the names mentioned in the TLS RFCs prefixed with TLS_ are functionally equivalent + * to the JSSE cipher suites prefixed with SSL_". + * Both variants are used to support JVMs supporting the one or the other. */ public static final List CIPHERS; private static final List CIPHERS_JAVA_MOZILLA_INCREASED_SECURITY = Collections.unmodifiableList(Arrays .asList( /* Java 8 */ - "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", /* openssl = ECDHE-ECDSA-AES256-GCM-SHA384 */ - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", /* openssl = ECDHE-ECDSA-AES128-GCM-SHA256 */ - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", /* openssl = ECDHE-RSA-AES256-GCM-SHA384 */ + /* openssl = ECDHE-ECDSA-AES256-GCM-SHA384 */ + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + /* openssl = ECDHE-ECDSA-AES128-GCM-SHA256 */ + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + /* openssl = ECDHE-RSA-AES256-GCM-SHA384 */ + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "SSL_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + /* REQUIRED BY HTTP/2 SPEC */ - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", /* openssl = ECDHE-RSA-AES128-GCM-SHA256 */ + /* openssl = ECDHE-RSA-AES128-GCM-SHA256 */ + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "SSL_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + /* REQUIRED BY HTTP/2 SPEC */ - "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256", /* openssl = DHE-RSA-AES128-GCM-SHA256 */ - "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256" /* openssl = DHE-DSS-AES128-GCM-SHA256 */)); + /* openssl = DHE-RSA-AES128-GCM-SHA256 */ + "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256", + "SSL_DHE_RSA_WITH_AES_128_GCM_SHA256", + /* openssl = DHE-DSS-AES128-GCM-SHA256 */ + "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256", + "SSL_DHE_DSS_WITH_AES_128_GCM_SHA256" + )); private static final List CIPHERS_JAVA_NO_MOZILLA_INCREASED_SECURITY = Collections.unmodifiableList(Arrays .asList( /* Java 8 */ - "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", /* openssl = DHE-RSA-AES256-GCM-SHA384 */ - "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384" /* openssl = DHE-DSS-AES256-GCM-SHA384 */)); + /* openssl = DHE-RSA-AES256-GCM-SHA384 */ + "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", + "SSL_DHE_RSA_WITH_AES_256_GCM_SHA384", + /* openssl = DHE-DSS-AES256-GCM-SHA384 */ + "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384", + "SSL_DHE_DSS_WITH_AES_256_GCM_SHA384" + )); static { List ciphers = new ArrayList(CIPHERS_JAVA_MOZILLA_INCREASED_SECURITY.size()