4.3. SSL/TLS 协议版本


概述

Apache CXF 支持的 SSL/TLS 协议版本取决于配置的特定 JSSE 供应商。默认情况下,JSSE 提供程序配置为 SUN 的 JSSE 供应商实现。

警告

如果启用了 SSL/TLS 安全性,您必须确保明确禁用 SSLv3 协议,以便防止 Poodle 漏洞(CVE-2014-3566)。如需了解更多详细信息,请参阅 JBoss Fuse 6.x 和 JBoss A-MQ 6.x 中的禁用 SSLv3

SunJSSE 支持的 SSL/TLS 协议版本

表 4.2 “SUN 的 JSSE 供应商支持的 SSL/TLS 协议” 显示 SUN 的 JSSE 供应商支持的 SSL/TLS 协议版本。

表 4.2. SUN 的 JSSE 供应商支持的 SSL/TLS 协议
协议描述

SSLv2Hello

不要使用!(POODLE 安全漏洞)

SSLv3

不要使用!(POODLE 安全漏洞)

TLSv1

支持 TLS 版本 1

TLSv1.1

支持 TLS 版本 1.1 (JDK 7 或更高版本)

TLSv1.2

支持 TLS 版本 1.2 (JDK 7 或更高版本)

排除特定的 SSL/TLS 协议版本

默认情况下,JSSE 供应商提供的所有 SSL/TLS 协议都可用于 CXF 端点(但 SSLv2HelloSSLv3 协议除外,自 Fuse 版本 6.2.0 起特别排除了 CXF 运行时,因为 Poodle 漏洞(CVE-2014-3566)除外)。

要排除特定的 SSL/TLS 协议,请在端点配置中使用 sec:excludeProtocols 元素。您可以将 sec:excludeProtocols 元素配置为 httpj:tlsServerParameters 元素(服务器侧)的子部分。

要排除除 TLS 版本 1.2 之外的所有协议,请按如下所示配置 sec:excludeProtocols 元素(假设您使用 JDK 7 或更高版本):

<?xml version="1.0" encoding="UTF-8"?>
<beans ... >
  ...
  <httpj:engine-factory bus="cxf">
    <httpj:engine port="9001">
      ...
      <httpj:tlsServerParameters>
        ...
        <sec:excludeProtocols>
          <sec:excludeProtocol>SSLv2Hello</sec:excludeProtocol>
          <sec:excludeProtocol>SSLv3</sec:excludeProtocol>
          <sec:excludeProtocol>TLSv1</sec:excludeProtocol>
          <sec:excludeProtocol>TLSv1.1</sec:excludeProtocol>
        </sec:excludeProtocols>
      </httpj:tlsServerParameters>
    </httpj:engine>
  </httpj:engine-factory>
  ...
</beans>
重要

建议您始终排除 SSLv2HelloSSLv3 协议,以防止 Poodle 漏洞(CVE-2014-3566)

secureSocketProtocol attribute

http:tlsClientParameters 元素和 httpj:tlsServerParameters 元素都支持 secureSocketProtocol 属性,它允许您指定特定的协议。

此属性的语义比较混淆,但此属性强制 CXF 选择支持指定协议的 SSL 供应商,但它不限制供应商只使用指定的协议。因此,端点最终可能会使用与指定不同的协议。因此,建议您不要在代码中使用 secureSocketProtocol 属性。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.