开启TLS加密

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

云数据库 Tair(兼容 Redis)支持TLS(Transport Layer Security)加密协议,TLS协议具有比SSL(Secure Sockets Layer)协议更好的加密技术和更高级别的安全性,可进一步保障数据通信安全。

背景信息

TLS协议是SSL协议的升级版,当前已成为互联网加密通信的标准协议,在现代网络中被广泛使用。以下是TLS相对SSL的一些优势:

  • 加密强度:TLS协议使用更强大的加密技术,例如AES(Advanced Encryption Standard)算法。

  • 安全性:TLS协议采用更安全的算法和协议,例如SHA-2(Secure Hash Algorithm 2)算法。

  • 兼容性:TLS协议是更现代化的协议,更加兼容现代浏览器和服务器,且支持更广泛的加密协议和密码套件。

  • 安全更新:TLS协议支持实时升级加密算法和协议。

因此,若您希望在传输层对网络连接进行加密,推荐您使用更安全、更新的TLS加密功能(该功能默认关闭)。

前提条件

实例满足如下条件:

  • 实例版本为Tair(企业版)内存型、持久内存型或Redis开源版5.0、6.0、7.0。

  • 实例类型为高可用(双副本)。

  • 若实例已申请公网连接地址,请释放公网连接地址,释放后才能开启TLS加密功能。

    说明

    经典版集群架构实例已申请直连地址,也请释放直连地址。

注意事项

  • 创建TLS连接需要经历多次握手过程,包括认证和密钥交换,这些步骤会占用显著的计算资源和时间,创建TLS连接的速度显著低于创建普通连接。在短时间内无法快速创建大量TLS连接,且频繁创建TLS连接会显著影响正常请求的延迟。因此,建议通过使用TLS长连接来减少这些开销,尽量避免频繁创建和销毁TLS连接,以降低对性能的影响。

  • 建立TLS连接后,使用TLS连接传输数据,由于所有的数据都需要加密、解密,也会产生额外开销,这些额外开销会伴随传输内容大小增长。

    说明

    具体的性能影响因业务场景而异,需要进行实际测试来评估在特定业务环境下的影响程度。

  • 开启TLS加密功能后,实例将不支持申请公网连接地址,同时经典版集群实例也无法申请直连地址,客户端只能通过专有网络、TLS加密方式连接实例。连接示例请参见启用TLS(SSL)加密连接实例

  • 开启TLS加密功能后,实例将不支持迁移可用区。

  • 开启TLS加密功能后,若修改了实例的连接地址或端口号,请更新实例TLS证书,再进行连接。否则会报错No subject alternative DNS name matching xxx found

操作步骤

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

  2. 在左侧导航栏,单击TLS(SSL)设置

  3. 单击一键开通

  4. 在弹出的对话框中,选择TLS版本

    参数说明:

    • TLSv1.3(推荐):RFC8446,2018年发布,相比较TLSv1.2,TLSv1.3具有更快、更安全的特性。

    • TLSv1.2(推荐):RFC5246,2008年发布,具有强大的加密技术,能提供更好的安全保护。

    • TLSv1.1:RFC4346,2006年发布,修复TLSv1.0若干漏洞。

    • TLSv1.0:RFC2246,1999年发布,基于SSLv3.0,该版本易受各种攻击(如BEAST和POODLE)。

  5. 单击确定

    警告

    本操作将触发重启实例,实例会出现秒级的连接闪断,请在业务低峰期执行该操作并确保应用具备重连机制。

    此时,您可以通过刷新控制台页面,更新TLS的开通状态。

    开通TLS后,您可以单击页面中的下载CA证书,将CA证书导入至客户端中。下载的文件为压缩包,包含如下三个文件:

    • ApsaraDB-CA-Chain.p7b:用于Windows系统中导入CA证书。

    • ApsaraDB-CA-Chain.pem:用于其他系统(如Linux)或应用中导入CA证书。

    • ApsaraDB-CA-Chain.jks:Java中的truststore证书存储文件,用于Java程序中导入CA证书链。

    不同实例下载的CA证书均相同,可以用于连接任何实例。

管理TLS加密设置

以下操作需要在实例已开通TLS加密后进行。

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

  2. 在左侧导航栏,单击TLS(SSL)设置

  3. 根据要执行的操作,选择下述操作步骤。

    要执行的操作

    操作说明

    更新CA证书

    单击页面中的更新证书,然后单击确定

    开通TLS加密时,证书的默认有效期为3年,且不支持自定义有效期。在证书到期前20天,实例会发起主动运维,更新证书有效期。届时,您可以在事件管理 > 计划内事件中修改运维时间。或者您也可以随时单击更新证书并重新下载配置CA证书,更新后,证书将重新获取3年有效期。

    警告

    本操作会使实例出现秒级的连接闪断,请在业务低峰期执行该操作并确保应用具备重连机制。

    修改TLS版本

    单击TLS版本右侧的image图标,然后在下拉列表中选择要更换的TLS版本。推荐使用TLSv1.2版本。

    说明

    如果TLS 最低版本下拉列表处于不可用状态,请升级实例的小版本后重试,具体操作请参见升级小版本与代理版本

    关闭TLS加密

    关闭TLS状态右侧的开关。

    警告

    本操作将触发重启实例,实例会出现秒级的连接闪断,请在业务低峰期执行该操作并确保应用具备重连机制。

    更新证书或修改TLS版本后,无需重新下载证书,可继续使用。

相关API

API

说明

ModifyInstanceTLS(SSL)

设置实例的TLS(SSL)加密功能。

后续步骤

启用TLS(SSL)加密连接实例

常见问题

  • 为什么我的实例无法开启TLS功能?

    若实例为经典版读写分离架构实例,不支持开启TLS功能。