设置代理SSL加密

RDS MySQL支持对数据库代理连接地址进行SSL(Secure Sockets Layer)加密,您可以启用SSL加密,并安装SSL CA证书到需要的应用服务,以提高RDS MySQL的链路安全性。本文介绍如何设置代理SSL加密。

SSL在传输层对网络连接进行加密,能提升通信数据的安全性和完整性,但会同时增加网络连接响应时间。

前提条件

  • 实例版本如下:

    • MySQL 8.0高可用系列(内核小版本20200831或以上)

    • MySQL 8.0集群系列

    • MySQL 5.7集群系列

    • MySQL 5.7高可用系列(内核小版本20200831或以上)

    • MySQL 5.6高可用系列(内核小版本20200831或以上)

    说明

    如果实例有只读实例,只读实例也需要满足内核小版本要求。

  • 已开通数据库代理

  • 数据库代理内核小版本为1.12.8或以上。

  • 需要开通SSL加密的代理连接地址总长度不能超过64个字符。

注意事项

  • 每个代理终端中仅支持对一个代理连接地址设置SSL加密。

  • 开通SSL加密、关闭SSL加密、修改SSL加密、更新证书有效期都会重启代理实例,请谨慎操作。

开通SSL加密

重要

开通SSL加密会重启实例,请谨慎操作。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏,单击数据库代理

  3. 连接信息区域,将鼠标悬停在目标代理连接地址ID,在弹出的对话框中的SSL配置信息区域,单击SSL证书信息右侧的开通

  4. 在弹出的对话框中,选择需要加密的地址,然后单击确定

  1. SSL状态变为已开通后,单击SSL证书信息右侧的下载CA证书

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

      • PEM文件:适用于绝大部分场景。

      • JKS文件:PEM格式CA证书通常需要导入到truststore,即转换为JKS文件才能在Java中使用。您可以在Java程序中使用此JKS文件,密码为apsaradb。

      • p7b文件:适用于少数要求PKCS #7证书文件的Windows应用。

    • 配置SSL 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 CA证书

开通SSL加密并下载CA证书后,可以配置SSL CA证书。具体操作,请参见配置CA证书

修改SSL加密地址

重要

修改SSL加密地址会更新证书有效期,同时重启实例,请谨慎操作。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏,单击数据库代理

  3. 连接信息区域,将鼠标悬停在目标代理连接地址ID,在弹出的对话框中的SSL配置信息区域,单击受保护地址下方的修改受保护地址

  4. 选择需要加密的地址,然后单击确定

更新证书有效期

重要

更新证书有效期会重启实例,请谨慎操作。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏,单击数据库代理

  3. 连接信息区域,将鼠标悬停在目标代理连接地址ID,在弹出的对话框中的SSL配置信息区域,单击SSL证书信息右侧的更新有效期,在弹出的对话框中单击确定

关闭SSL加密

重要

关闭SSL加密会重启实例,请谨慎操作。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏,单击数据库代理

  3. 连接信息区域,将鼠标悬停在目标代理连接地址ID,在弹出的对话框中的SSL配置信息区域,单击SSL证书信息右侧的关闭,在弹出的对话框中单击确定

相关API

API

描述

ModifyDbProxyInstanceSsl

设置数据库代理连接地址SSL加密。

GetDbProxyInstanceSsl

查询数据库代理连接地址SSL加密信息。

附录

通过SSL连接数据库示例代码

请参见通过SSL连接数据库示例代码

SSL加密常见问题

请参见SSL加密常见问题