带有 OpenSSL 和支持组(椭圆曲线)的 Netty tcnative
Netty tcnative with OpenSSL and supported groups (elliptic curves)
我有一台使用 JRE8、netty 4.1.x 和 netty-tcnative 2.0.36 的服务器。默认配置 SslProvider.OPENSSL
。
SslContextBuilder contextBuilder = SslContextBuilder.forServer(keyMngrFactory)
.sslProvider(SslProvider.OPENSSL)
.enableOcsp(true);
服务器配置了 TLS 1.2 和 TLS_ECDHE_RSA* 密码套件。
我需要能够限制(白名单)在 SSL 握手期间用于 ECDHE 临时密钥交换的椭圆曲线(supported_groups 扩展)。但是,对于 SslProvider.OPENSSL
,服务器似乎不支持系统 属性 -Djdk.tls.namedGroups
。相反,服务器始终使用 P-256 进行临时密钥交换。
如果我切换到 SslProvider.JDK
,上面的系统 属性 (-Djdk.tls.namedGroups
) 正在 ECDHE 临时密钥交换期间反映。但是,我无法将我的生产应用程序切换为使用 JDK 提供商。
我遇到了 https://github.com/netty/netty-tcnative/issues/567 - 基于此,我认为不支持限制 supported_groups 扩展。但不确定是否有任何替代方法。
我的查询:
- 在netty-tcnative中使用
SslProvider.OPENSSL
时,是否可以限制椭圆曲线(支持group/named组)用于密钥交换?
- 如果是,如何配置?
Neety-tcnative 已通过此 PR 更新 - https://github.com/netty/netty-tcnative/pull/661 以支持此功能。
我有一台使用 JRE8、netty 4.1.x 和 netty-tcnative 2.0.36 的服务器。默认配置 SslProvider.OPENSSL
。
SslContextBuilder contextBuilder = SslContextBuilder.forServer(keyMngrFactory)
.sslProvider(SslProvider.OPENSSL)
.enableOcsp(true);
服务器配置了 TLS 1.2 和 TLS_ECDHE_RSA* 密码套件。
我需要能够限制(白名单)在 SSL 握手期间用于 ECDHE 临时密钥交换的椭圆曲线(supported_groups 扩展)。但是,对于 SslProvider.OPENSSL
,服务器似乎不支持系统 属性 -Djdk.tls.namedGroups
。相反,服务器始终使用 P-256 进行临时密钥交换。
如果我切换到 SslProvider.JDK
,上面的系统 属性 (-Djdk.tls.namedGroups
) 正在 ECDHE 临时密钥交换期间反映。但是,我无法将我的生产应用程序切换为使用 JDK 提供商。
我遇到了 https://github.com/netty/netty-tcnative/issues/567 - 基于此,我认为不支持限制 supported_groups 扩展。但不确定是否有任何替代方法。
我的查询:
- 在netty-tcnative中使用
SslProvider.OPENSSL
时,是否可以限制椭圆曲线(支持group/named组)用于密钥交换? - 如果是,如何配置?
Neety-tcnative 已通过此 PR 更新 - https://github.com/netty/netty-tcnative/pull/661 以支持此功能。