为了提高RDS SQL Server的链路安全性,您可以启用SSL(Secure Sockets Layer)加密,并安装SSL CA证书到需要的应用服务。SSL在传输层对网络连接进行加密,能提升通信数据的安全性和完整性,但会同时增加网络连接响应时间。

背景信息

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

注意事项

  • SSL的证书有效期为1年,请在1年内更新证书有效期,否则使用加密连接的客户端程序将无法正常连接。
  • 由于SSL加密的固有缺陷,启用SSL加密会显著增加CPU使用率,建议您仅在外网链路有加密需求的时候启用SSL加密。内网链路相对较安全,一般无需对链路加密。
  • 读写分离地址不支持SSL加密。

开启SSL加密

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧菜单栏中单击数据安全性
  3. SSL标签页,单击未开通前面的开关。开通SSL
  4. 设置SSL对话框中选择要开通SSL加密的链路,单击确定,开通SSL加密。设置SSL
    说明 用户可根据需要,选择加密内网链路或者外网链路,但仅允许加密一条链路。
  5. 在SSL页签下,单击下载CA证书,下载SSL CA证书。
    下载的文件为压缩包,包含如下三个文件:
    • p7b文件:用于Windows系统中导入CA证书。
    • PEM文件:用于其他系统或应用中导入CA证书。
    • JKS文件:Java中的truststore证书存储文件,密码统一为apsaradb,用于Java程序中导入CA证书链。
    重要 在Java中使用JKS证书文件时,jdk7和jdk8需要修改默认的jdk安全配置,在需要SSL访问的数据库所在机器的 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加密后,应用端或者客户端连接RDS时需要配置SSL CA证书。本文以SQL Server Management Studio为例,介绍SSL CA证书安装方法。其它应用或者客户端请参见对应产品的使用说明。

  1. 单击桌面左下角搜索框,输入certmgr.msc并打开。
  2. certmgr对话框中,鼠标右击受信任的根证书颁发机构
  3. 选择所有任务 > 导入
  4. 单击下一页2
  5. 证书导入向导页面中,单击浏览导入已下载的SSL CA证书,并单击下一页
    说明 下载SSL CA证书请参见 开启SSL加密
    3
  6. 按个人需要选择证书存放位置后,单击下一页4
  7. 单击完成,提示证书导入成功后,单击OK即可。
  8. 打开SQL Server Management Studio,单击对话框右下角Options按钮。1
  9. Connection Properties选项卡中,勾选Encrypt connectionTrust server certificate,并单击Connect按钮。6
  10. 执行如下查询,若查询结果为TRUE,则说明连接已加密。
    SELECT ENCRYPT_OPTION FROM SYS.DM_EXEC_CONNECTIONS WHERE SESSION_ID = @@SPID

更新证书有效期

SSL的证书有效期为1年,请在1年内更新证书有效期,否则使用加密连接的客户端程序将无法正常连接。
重要 更新有效期操作将会重启实例,重启前请做好业务安排,谨慎操作。
  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏单击数据安全性
  3. 选择SSL页签,单击更新有效期更新证书有效期

关闭SSL加密

说明
  • 关闭SSL加密会重启RDS实例,系统会触发主备切换降低影响,但仍建议您在业务低峰期操作。
  • 关闭SSL加密后,数据库访问性能会有一定程度提升,但安全性上有削弱,故非安全环境下不建议关闭SSL加密。
  • 关闭SSL加密后,仅支持通过非SSL方式连接。
  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏单击数据安全性
  3. 选择SSL标签页。
  4. 单击已开通前面的开关,在弹出的提示框中单击确定

常见问题

Q:SSL证书到期后不更新会有什么影响?会影响实例运行或数据安全吗?

A:SSL证书到期后不更新,仅会导致使用加密连接的客户端程序无法正常连接实例,不会影响实例运行或数据安全。