为了提高链路安全性,您可以启用SSL(Secure Sockets Layer)加密,并下载安装CA证书到所需要的应用服务中。SSL在传输层对网络连接进行加密,能提升通信数据的安全性和完整性,防止数据被第三方监听、截取和篡改,但会增加网络连接响应时间。本文为您介绍如何开启、关闭SSL加密。

前提条件

AnalyticDB for MySQL集群需满足以下条件:

  • 产品系列为数仓版

  • 集群内核版本为3.2.1.0及以上版本。

    说明

    查看和升级数仓版集群的内核版本,请参见查看和升级版本

背景信息

SSL是Netscape公司所提出的安全保密协议,在浏览器和Web服务器之间构造安全通道来进行数据传输,采用RC4、MD5、RSA等加密算法实现安全通讯。国际互联网工程任务组(IETF)对SSL 3.0进行了标准化,标准化后更名为安全传输层协议(TLS)。由于SSL术语更为常用,因此本文所述SSL加密实际指TLS加密。

说明

AnalyticDB for MySQL推荐使用TLS 1.2协议进行安全通信。

注意事项

  • SSL的证书有效期为1年,请在1年内更新证书有效期,否则使用加密连接的客户端程序将无法正常连接。

  • 由于SSL加密的固有缺陷,开启SSL加密会导致CPU使用率升高,建议您按业务实际需求开启SSL加密。

  • 开启、关闭SSL加密和更新证书时,会重启Controller节点,会导致连接闪断,请在业务低峰期执行并确保您的应用有重连机制

开启SSL加密

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在数仓版页签,单击目标集群ID。

  2. 在左侧导航栏,单击数据安全

  3. SSL配置页签下,打开SSL状态后的开关。

  4. 在弹出的设置SSL对话框中选择受保护的地址,并单击确定

    重要
    • AnalyticDB for MySQL支持加密内网链路和公网链路,但每个集群仅允许加密一条链路。您可以修改加密的链路,修改后,证书会自动更新,并同时重启Controller节点

    • 若需加密公网链路,请确保集群已开通公网地址,否则无法对公网地址进行加密。更多操作,请参见申请公网地址

  5. SSL加密开启后,单击下载证书

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

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

    • .pem格式文件:用于其他系统或应用中导入CA证书。

    • .jks格式文件:Java中的TrustStore证书存储文件,密码为apsaradb,用于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

更新SSL证书有效期

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在数仓版页签,单击目标集群ID。

  2. 在左侧导航栏,单击数据安全

  3. SSL配置页签下,单击更新有效期

关闭SSL加密

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在数仓版页签,单击目标集群ID。

  2. 在左侧导航栏,单击数据安全

  3. SSL配置页签下,关闭SSL状态后的开关。

  4. 在弹出的关闭SSL对话框中,单击确定

相关API

API

说明

ModifyDBClusterSSL

开启或关闭数仓版集群的SSL加密功能。

DescribeDBClusterSSL

查询数仓版集群的SSL配置信息。