RDS SQL Server的SSL(Secure Socket Layer)加密功能用于对传输中的数据进行加密,适用于增强RDS内外网连接的安全性、或满足各类安全合规等场景。您可以使用阿里云提供的证书或用户自定义证书对传输中的数据进行加密,同时还支持对内外网链路强制进行SSL加密,能有效保障数据在传输过程中的机密性。
SSL加密功能可以对RDS SQL Server和客户端之间传输的数据进行加密,防止数据被第三方监听、截取和篡改。
开启SSL加密后,客户端连接RDS SQL Server时,可以选择进行强制加密连接或者非加密连接。
开启SSL加密时,RDS SQL Server将生成服务器证书以及公私钥。
在加密连接的建立过程中,RDS SQL Server会发送服务器证书(包含公钥)给客户端,客户端用收到的公钥加密生成的对称密钥,只有RDS SQL Server有私钥能够解密该对称密钥,RDS SQL Server和客户端将使用该对称密钥对通信数据进行加密和解密,从而保证通信的机密性。客户端还可以使用CA证书验证收到的服务器证书以确认RDS SQL Server身份,防止中间人攻击。
TLS(Transport Layer Security)是SSL的后继版本,本文统称为SSL。
RDS SQL Server支持的TLS版本为1.0、1.1和1.2。
使用自定义密钥加密前,需要先完成以下操作:
阿里云账号(主账号)已授权RDS官方服务账号可以访问您OSS的权限。
开启SSL加密、关闭SSL加密、更新SSL证书时会重启实例,实例可能会有几分钟不可用,建议在业务低峰期操作。
由于SSL加密的实现原理,开启SSL加密会显著增加CPU使用率。建议您仅在外网链路有加密需求的时候启用SSL加密,内网链路相对较安全,一般无需对链路加密。
在左侧菜单栏中单击数据安全性。
在SSL标签页,单击未开通前面的开关。
在设置SSL对话框中,选择加密方式,并进行相关配置。
参数
是否必选
说明
请选择受保护地址:
选择要开通SSL加密的链路。支持加密内网链路和外网链路,但仅允许加密一条链路。
是否开启强制加密
开启后将强制客户端以加密方式连接SQL Server内外网链路,且连接无需上传CA证书,不再支持非加密连接方式。
支持最低TLS版本
选择支持的最低TLS版本,当前支持TLS版本为1.0、1.1和1.2,低于该版本将被拒绝连接。
例如,选择TLS 1.1,则表示服务端仅接受TLS 1.1和1.2协议版本的客户端连接请求,通过TLS 1.0建立连接的客户端会被拒绝连接。
在上传pfx格式证书到OSS面板中,单击下一步。
在使用自定义密钥加密面板中,配置如下参数,并单击下一步。
参数
说明
OSS Bucket
选择证书所在的OSS Bucket。
证书
选择需要的pfx证书。
密码
输入证书密码。
在设置常规选项面板中,配置如下参数。
参数
是否必选
说明
请选择受保护地址:
选择要开通SSL加密的链路。支持加密内网链路和外网链路,但仅允许加密一条链路。
是否开启强制加密
开启后将强制客户端以加密方式连接SQL Server内外网链路,且连接无需上传CA证书,不再支持非加密连接方式。
支持最低TLS版本
选择支持的最低TLS版本,当前支持TLS版本为1.0、1.1和1.2,低于该版本将被拒绝连接。
例如,选择TLS 1.1,则表示服务端仅接受TLS 1.1和1.2协议版本的客户端连接请求,通过TLS 1.0建立连接的客户端会被拒绝连接。
单击确定,数据库将支持SSL加密连接。
开启SSL加密需要约1分钟,您可以手动刷新页面查看实例状态。
如果不使用CA证书,您也可以通过SSL加密连接RDS SQL Server。但建议您下载并使用CA证书,它可以在SSL握手阶段验证收到的服务器证书,以确认RDS SQL Server的身份,避免中间人攻击。
在左侧菜单栏中单击数据安全性。
在SSL页签下,单击下载CA证书。
下载的文件为压缩包,包含如下三个文件:
p7b文件:用于Windows系统中导入CA证书。
PEM文件:用于其他系统或应用中导入CA证书。
JKS文件:Java中的truststore证书存储文件,密码统一为apsaradb,用于Java程序中导入CA证书链。
若不修改jdk安全配置,会报如下错误。其它类似报错,一般也都由Java安全配置导致。
在RDS SQL Server实例中开启SSL加密后,应用端或客户端在连接实例时需要配置SSL CA证书。本文以Microsoft SQL Server Management Studio(SSMS)为例,介绍SSL CA证书安装方法。其它应用或者客户端请参见对应产品的使用说明。
在certmgr对话框中,鼠标右击受信任的根证书颁发机构。
选择所有任务 > 导入。
单击下一步。
选择证书存放位置后,单击下一步。
单击完成等待证书导入。
打开SQL Server Management Studio,单击对话框右下角选项按钮。
在连接属性选项卡中,勾选加密连接和信任服务器证书,并单击连接按钮。
执行如下查询,若查询结果为TRUE,则说明连接已加密。
RDS SQL Server的SSL证书有效期为1年,证书到期后不更新,会导致使用加密连接的客户端程序无法正常连接实例。即将到期时,阿里云将会通过短信、邮件、站内信(事件中心)的方式提醒使用自定义证书开启SSL的用户。请在到期前更新证书有效期,以确保客户端程序能够正常连接。
更新有效期操作将会重启实例,实例可能会有几分钟不可用,重启前请做好业务安排,谨慎操作。
在左侧导航栏单击数据安全性。
关闭SSL加密会重启RDS实例,系统会触发主备切换降低影响,建议您在业务低峰期操作。
关闭SSL加密后,数据库访问性能会有一定程度提升,但安全性上有削弱,因此非安全环境下不建议关闭SSL加密。
关闭SSL加密后,仅支持通过非SSL方式连接。
在左侧导航栏单击数据安全性。
选择SSL标签页。
单击已开通前面的开关,在弹出的提示框中单击确定。
在SQL Server中,可以执行如下命令查看当前连接是否已启用了SSL加密连接:
Q:SSL证书到期后不更新会有什么影响?会影响实例运行或数据安全吗?
A:SSL证书到期后不更新,仅会导致使用加密连接的客户端程序无法正常连接实例,但不会影响实例运行或数据安全。
关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务