SSL 链路加密

更新时间:2025-06-30 13:47:59

本页面为您介绍 SSL 链路加密的操作步骤。

背景信息

为了提高链路安全性,OceanBase 数据库连接支持开启 SSL(Secure Sockets Layer)加密,通过在传输层对网络连接进行加密,提升通信数据的安全性。在开启 SSL 连接之后,支持设置要求客户端也必须使用 SSL 连接访问。

说明
  • SSL 链路加密开启后暂不支持关闭,实例性能将有轻微下降(证书加解密需要消耗一定的计算资源),建议仅在有外网连接或者有传输加密需求的时候开启实例 SSL 链路加密。

  • 云数据库 OceanBase V2.2.76 及以上版本支持 SSL 链路加密功能。

  • 标准版(Key-Value)集群暂不支持 SSL 链路加密功能。

  • SSL 链路加密功能对直连地址不生效。

TLS 版本说明

TLS(Transport Layer Security)是一种被广泛采用的传输层安全性协议,用来保障互联网通信的私密性和数据安全性。TLS 协议有很多版本,JDK 与 MySQL Connector/J 组合的不同版本对 TLS 的支持情况如下:

JDK 版本

MySQL Connector/J 版本

TLSv1.0

TLSv1.1

TLSv1.2

TLSv1.3

JDK 版本

MySQL Connector/J 版本

TLSv1.0

TLSv1.1

TLSv1.2

TLSv1.3

JDK 8

< 8u291

-

支持

支持

支持

不支持

8u291 ~ 8u333

-

不支持

不支持

支持

不支持

>= 8u341

< 8.0.19

不支持

不支持

支持

不支持

>= 8.0.19

不支持

不支持

支持

支持

JDK 9

-

-

支持

支持

支持

不支持

JDK 11

< 11.0.11

< 8.0.19

支持

支持

支持

不支持

>= 8.0.19

支持

支持

支持

支持

>= 11.0.11

< 8.0.19

不支持

不支持

支持

不支持

>= 8.0.19

不支持

不支持

支持

支持

操作步骤

  1. 登录 OceanBase 管理控制台

  2. 在左侧导航栏单击 实例列表

  3. 在实例列表中找到目标集群实例,单击集群实例名称,进入 集群实例工作台 页面。

  4. 在左侧导航栏单击 安全设置

  5. 单击 SSL 链路加密 页签,您可进行如下操作。

    1. 单击 SSL 链路加密 开关,开启 SSL 链路加密,开启过程大概需要 3~5 分钟。SSL 链路加密成功开启后,有些版本可选择是否开启 强制 SSL 连接。如果页面不显示强制 SSL 链接,说明当前版本不支持强制开启。强制SSL.png

      说明

      开启强制 SSL 连接,会屏蔽非 SSL 连接,历史创建的非 SSL 连接将失效,请注意切换连接方式。

    2. 单击 下载 CA 证书,下载证书。

      下载的文件为压缩包,包含如下三个文件:

      • p7b 文件:用于 Windows 系统中导入 CA 证书。

      • PEM 文件:用于其他系统或应用中导入 CA 证书。

      • JKS 文件:Java 中的 truststore 证书存储文件,密码统一为 OceanBase,用于 Java 程序中导入 CA 证书链。

      说明

      在 Java 中使用 JKS 证书文件时,jdk7 和 jdk8 需要修改默认的 jdk 安全配置,在应用程序所在主机的jre/lib/security/java.security文件中,修改如下两项配置:

      jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 224
      jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024

      若不修改 jdk 安全配置,会报如下错误。其他类似报错,一般也都由 Java 安全配置导致。

      javax.net.ssl.SSLHandshakeException: DHPublicKey does not comply to algorithm constraints
    3. 单击 更新有效期,可以刷新 SSL 证书有效期

      2

    4. 单击 自动更新 SSL 证书有效期 开关,开启后,证书将在到期前 7 天自动更新,每次更新有效时长为 360 天。

      image

常见问题

当 Java 程序连接报错 javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)时,您可以通过以下任一方式解决该问题:

  • 在 JDBC 连接串 url 参数中指定 TLS 版本,例如指定 enabledTLSProtocols=TLSv1.2。

  • 降低使用的 JDK 版本至 1.8.0_291 以下。

  • 本页导读 (0)
  • 背景信息
  • TLS 版本说明
  • 操作步骤
  • 常见问题