本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
RDS MySQL在配置SSL链路加密时,不仅支持使用阿里云数据库提供的云端证书,还支持使用自定义证书。本文介绍通过自定义证书配置SSL链路加密功能的具体操作。
前提条件
已安装OpenSSL工具。
RDS MySQL实例系列及版本如下:
高可用系列:8.0、5.7、5.6
集群系列:8.0、5.7
基础版系列:8.0、5.7
使用Linux系统时,通常已经预装了OpenSSL工具,无需另外安装。
使用Windows系统时,需要获取OpenSSL软件包并安装。
注意事项
开启SSL链路加密后,会造成CPU使用率上升、读写时延增长。
开启SSL链路加密后,已有连接需要断开重连,加密才会生效。
配置、更改自定义证书内容或关闭SSL链路加密,将会重启您的数据库实例,耗时3分钟左右,请在业务低峰期操作。
如何配置
步骤一:获取自定义证书
生成服务器证书私钥或自签名证书私钥时,请勿使用密码加密,否则将无法启用SSL链路加密。
以CentOS系统配置为例,执行如下步骤:
如果您的操作系统为Windows,操作步骤中的openssl
命令与CentOS系统中的openssl
命令配置相同,cp
命令请替换为手动复制,vim
命令请替换为手动编辑文件。
创建自签名证书(server-ca.crt)和自签名证书私钥(server-ca.key)。
openssl req -new -x509 -days 365 -nodes -out server-ca.crt -keyout server-ca.key -subj "/CN=root-ca"
生成服务器证书请求文件(server.csr)和服务器证书私钥(server.key)。
MySQL的自定义证书目前仅支持对一个连接地址进行保护。您可以根据需要选择配置生成服务器证书请求文件,请配置如下命令:
openssl req -new -nodes -text -out server.csr -keyout server.key -subj "/CN=rm-bpxxxxx.mysql.rds.aliyuncs.com"
说明rm-bpxxxxx.mysql.rds.aliyuncs.com
仅用于举例,请修改为需要保护的链接地址,查看连接地址请参见查看和管理实例连接地址和端口。生成证书请求文件(server.csr)的过程中,会提示配置以下参数,请根据实际情况配置。
参数
说明
示例
Country Name
ISO国家代码(两位字符)
CN
State or Province Name
所在省份
ZheJiang
Locality Name
所在城市
HangZhou
Organization Name
公司名称
Alibaba
Organizational Unit Name
部门名称
Aliyun
Common Name
申请SSL证书的域名,在openssl.cnf文件中已配置,不需要输入
-
Email Address
不需要输入
-
A challenge password
不需要输入
-
An optional company name
不需要输入
-
生成服务器证书(server.crt)。
如果您需要保护连接地址,请配置如下命令。
openssl x509 -req -in server.csr -text -days 365 -CA server-ca.crt -CAkey server-ca.key -CAcreateserial -out server.crt
完成以上步骤的配置后,执行ls
命令,查看已生成的文件:
# ls
server-ca.crt server-ca.key ca.srl server.crt server.csr server.key
关键文件解释如下:
server.crt:服务器证书文件。
server.key:服务器私钥文件。
server-ca.crt:自签名证书。
server-ca.key:自签名证书私钥。
步骤二:使用自定义证书开启SSL链路加密
配置自定义证书后,实例的运行状态将会变更为修改SSL中,该状态将持续三分钟,请等待实例状态变更为运行中后再进行后续操作。
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
进入 >SSL页面。
切换证书来源为使用自定义证书,单击未开通前的开关,填写服务器证书及服务器证书私钥后,单击确定,完成配置。
参数
取值
服务器证书
此参数填写步骤一:获取自定义证书步骤中获取的server.crt文件内容。请填写-----BEGIN CERTIFICATE-----至-----END CERTIFICATE-----间的内容,包括BEGIN和END部分。
服务器证书私钥
此参数填写步骤一:获取自定义证书步骤中获取的server.key文件内容。请填写-----BEGIN PRIVATE KEY-----至-----END PRIVATE KEY-----间的内容,包括BEGIN和END部分。
配置成功后,会显示如下图所示的信息:
步骤三:客户端连接数据库
RDS MySQL数据库支持通过SSL远程连接,更多信息,请参见SSL连接RDS MySQL数据库。
步骤四:(可选)更新证书
除MySQL 8.0外,其他版本更新证书会重启实例,请谨慎操作。
如果您需要更新证书,可以在SSL页面单击更新SSL按钮,填入新的服务器证书和私钥。
步骤五:(可选)关闭SSL链路加密
关闭SSL加密会重启实例,请谨慎操作。
如果您需要关闭SSL链路加密,可以在SSL页面单击已开通前的按钮。
常见问题
Q:自定义证书过期了怎么办?
A:RDS MySQL自定义证书的期限为用户所自定义,系统会根据证书有效期时间,在到期前发送过期提醒的通知,请收到通知后及时进行证书的有效期更新,避免业务受到影响。