tencent cloud

云数据库 SQL Server

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
产品架构
产品优势
应用场景
地域和可用区
大版本生命周期说明
功能概览及差异
实例类型
实例规格
存储类型
常用概念
网络环境
许可声明
购买指南
计费概述
产品价格
购买方式
续费说明
欠费说明
退费说明
按量转包年包月
调整实例费用说明
本地备份空间收费说明
跨地域备份收费说明
查看账单明细
快速入门
创建 SQL Server 实例
连接 SQL Server 实例
管理 SQL Server 实例
操作指南
约束与限制
使用规范与建议
维护管理实例
调整实例配置
只读实例
网络管理
账号管理
数据库管理
数据安全
参数配置
监控与告警
备份与回档
日志管理
发布订阅
数据集成服务(SSIS)
数据迁移(新版)
数据迁移(旧版)
数据同步(DTS)
实践教程
云数据库 SQL Server 定期维护方法
云数据库 SQL Server 慢 SQL 优化
如何更好地使用 Tempdb
跨账号备份恢复
为云数据库 SQL Server 创建 VPC
金蝶K/3 WISE 接入云数据库 SQL Server
账号权限和权限控制
变更数据捕获功能的开启和关闭
收缩数据库
API 文档
History
Introduction
API Category
Making API Requests
Sales and fee related APIs
Instance Management related APIs
Operation and maintenance management related APIs
Network management related APIs
Account management related APIs
Database management related APIs
Security group management related APIs
Data security encryption related APIs
Parameter configuration related APIs
Extended Event related APIs
Log management related APIs
Read only instance management related APIs
Publish and subscribe related APIs
Backup related APIs
Rollback related APIs
Data migration (cold standby migration) related APIs
SQL Server Integration Services (SSIS) related APIs
Data migration (DTS old version) related APIs
Data Types
Error Codes
常见问题
常见问题概览
选购咨询
计费与选购
连接与网络
账号与权限
备份与回档
数据迁移
发布订阅
只读实例
版本架构升级
磁盘扩缩容与规格升降级
监控与告警
日志相关
参数修改
功能特性相关
性能空间内存相关
相关协议
服务等级协议
服务条款
性能测试
性能测试报告
词汇表
联系我们

设置 SSL 加密

PDF
聚焦模式
字号
最后更新时间: 2025-09-09 09:47:56

SSL 加密概述

SSL(Secure Sockets Layer)认证是客户端到云数据库服务器端的认证,表示对用户和服务器进行认证。开通 SSL 加密,可获取 CA 证书,将 CA 证书上传在服务器端,在客户端访问数据库时,将激活 SSL 协议,在客户端和云数据库服务器端之间建立一条 SSL 安全通道,实现数据信息加密传输,防止数据在传输过程中被截取、篡改,保证双方传递信息的安全性。
SSL 协议要求建立在可靠的传输层协议(TCP)之上,其优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP、FTP、TELNET 等)能透明地建立于 SSL 协议之上。SSL 协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作,在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。


背景

SSL 是 Netscape 公司所提出的安全保密协议,通过在浏览器和 Web 服务器之间构建安全通道来进行数据传输,采用 RC4、MD5、RSA 等加密算法实现安全通讯。国际互联网工程任务组(IETF)对 SSL 3.0进行了标准化,标准化后更名为安全传输层协议(TLS)。由于 SSL 这一术语更为常用,因此本文所述 SSL 加密实际是指 TLS 加密。
说明:
腾讯云数据库支持的 TLS 版本为1.0、1.1、1.2和1.3。
使用非加密方式连接数据库时,在网络中传输的所有信息都是明文,因此存在被非法用户截取、篡改、冒充的三大风险;而 SSL 协议是为解决这三大风险而设计的,理论上可达到:
信息是加密传播,第三方无法截取。
具有校验机制,一旦被篡改,通信双方会立刻发现。
配备身份证书,防止身份被冒充。
云数据库 SQL Server 支持开启 SSL 加密来增强链路安全性,并支持下载和安装 SSL CA 证书到需要的应用服务。
注意:
SSL 加密不保护数据本身,是确保来往于客户端和云数据库服务器端之间的流量安全,在传输层对网络连接进行加密,能够提升通信数据的安全性和完整性,但会同时增加网络连接响应时间。

支持架构及版本

云数据库 SQL Server 所有架构及版本的数据库实例均支持设置 SSL 加密,其中,只读实例无需单独设置,主实例开启 SSL 加密后,其只读实例会同步生效。
商业智能服务实例不支持设置 SSL 加密。
注意:
若您对主实例设置 SSL 并选择在维护时间内执行,则主实例关联的只读实例的 SSL 生效时间会跟随主实例,在主实例的维护时间一起重启实例生效。

注意事项

开启 SSL 加密后,会造成实例 CPU 使用率上升、读写时延增长。建议仅在外网链路有加密需求时开启 SSL 加密。内网链路相对较安全,通常无需对链路加密。
开启 SSL 加密、更新 SSL 证书或关闭 SSL 加密操作,会重启数据库实例,实例可能会有几分钟不可用的情况,因此,操作前请您确保业务具备重连机制,建议在业务低峰期操作。
SSL 的证书具有有效期(1年),请在到期前在控制台 手动更新证书的有效期,否则,使用 SSL 加密连接的客户端程序将无法正常连接。
SSL 的证书到期后不更新,仅会导致使用加密连接的客户端程序无法正常连接实例,而不会影响实例的正常运行或数据安全。
关闭 SSL 加密后,仅支持通过非 SSL 加密方式连接实例。

开启 SSL 加密

2. 选择地域,在实例列表单击需要开启 SSL 的实例 ID操作列的管理
3. 实例管理页选择数据安全 > SSL 加密
4. 单击立即开通

证书来源为腾讯云时操作参考
证书来源为用户自定义时操作参考

在弹窗下选择执行时间,勾选“开启 SSL 加密过程中,会重启您的数据库实例,请确保业务具备重连机制”,单击确定
执行时间
立即执行:单击确认后立即开启 SSL 加密。
维护时间内:在实例维护时间内开启 SSL 加密,在实例详情页可 修改实例维护时间

1. 单击前往开通,开通 KMS 服务,若已开通则此步骤跳过。
2. 单击点击进行授权,进行 KMS 密钥授权,若已授权则此步骤跳过。
3. 选择证书所在地域,选择证书。
说明:
若没有可选的证书,或者已有证书不符合您的要求,您可单击 前往创建,到 KMS 控制台创建证书后,再返回选择新创建的证书。
4. 在弹窗下选择执行时间,勾选“开启 SSL 加密过程中,会重启您的数据库实例,请确保业务具备重连机制”,单击确定
执行时间
立即执行:单击确认后立即开启 SSL 加密。
维护时间内:在实例维护时间内开启 SSL 加密,在实例详情页可 修改实例维护时间
5. 
成功开启后
,界面如下。

需注意,配置客户端 CA 证书为可选设置,用于客户端信任服务端。单击下载 CA 证书,可下载证书并用于配置安装到客户端。
下载的文件为压缩包(TencentDB-SSL-CA.zip),包含如下三个文件:
p7b 文件:用于 Windows 系统中导入 CA 证书。
jks 文件:Java 中的 truststore 和 keystore 存储文件,密码统一为 tencentdb,用于 Java 程序中导入 CA 证书链。
pem 文件:用于其他系统或应用中导入 CA 证书。

SSL 客户端连接登录

开启 SSL 加密后,客户端在连接登录云数据库 SQL Server 实例时,分为信任服务器证书和不信任服务器证书两种场景。若信任服务器证书,则不需要配置 SSL CA 证书即可进行加密连接;若不信任服务器证书,则需要导入并配置 SSL CA 证书后,进行加密连接。

场景一:加密连接且信任服务器证书

步骤1:加密连接登录
1. 打开 SQL Server Management Studio 客户端,单击对话框右下角的选项

2. 在连接属性选项卡中,勾选加密连接信任服务器证书,并单击连接

步骤2:检查连接是否已加密
方法一:通过 SSMS 客户端界面
方法二:通过指令
1. 通过 SSMS 成功连接登录后,在实例上右击选择属性。

2. 在弹出的服务属性页面上,点击左侧的查看连接属性。

3. 在弹出的连接属性页面上,可以查看连接是否被加密。

执行如下查询命令,若查询结果为 TRUE,则说明连接已加密,若查询结果为 FALSE,则说明连接未加密。
SELECT ENCRYPT_OPTION FROM SYS.DM_EXEC_CONNECTIONS WHERE SESSION_ID = @@SPID;

场景二:加密连接且不信任服务器证书

步骤1:下载 CA 证书
开启 SSL 加密后,在目标实例详情页面 > 数据安全 > SSL 加密下,单击 下载 CA 证书
步骤2:客户端导入 CA 证书
方法一:通过本地客户端界面
方法二:通过指令
1. 单击桌面左下角搜索框,输入 certmgr.msc 打开证书管理器。

2. 在 certmgr 对话框中,鼠标右键单击受信任的根证书颁发机构,选择所有任务 > 导入

3. 单击下一步

4. 在证书导入向导页面中,单击浏览导入已下载的 SSL CA 证书,并单击下一步

5. 选择下载到本地的 TencentDB-SSL-CA 证书文件,单击打开

6. 按个人需要选择证书存放位置后,单击下一步,然后单击完成

您也可以通过指令导入 SSL CA 证书,例如,通过 CMD 或者 PowerShell 执行以下指令来导入证书。
CERTUTIL -addstore -enterprise -f -v root "ca.p7b"
步骤3:加密连接登录
1. 打开 hosts 文件,文件路径为 C:\\Windows\\System32\\drivers\\etc。
2. 在 hosts 文件最后一行增加 IP mssql-*******。

说明:
IP:替换成对应实例的内网 IP 或者外网 IP。
mssql-*******:替换成对应实例 ID。
3. 打开 SQL Server Management Studio 客户端,单击对话框右下角的选项

4. 在连接属性选项卡中,勾选加密连接,并单击连接

步骤4:检查连接是否已加密
方法一:通过 SSMS 客户端界面
方法二:通过指令
1. 通过 SSMS 成功连接登录后,在实例上右击选择属性。

2. 在弹出的服务属性页面上,点击左侧的查看连接属性。

3. 在弹出的连接属性页面上,可以查看连接是否被加密。

执行如下查询命令,若查询结果为 TRUE,则说明连接已加密,若查询结果为 FALSE,则说明连接未加密。
SELECT ENCRYPT_OPTION FROM SYS.DM_EXEC_CONNECTIONS WHERE SESSION_ID = @@SPID

更新证书有效期

说明:
SSL 的证书具有有效期,证书来源为腾讯云时有效期为1年,证书来源为用户自定义时,有效期为您在 KMS 控制台创建的自定义密钥时所配置的日期。到期前您需手动更新证书,以确保使用 SSL 加密连接的客户端程序可以继续正常连接。
更新 SSL 证书过程中,会重启您的数据库实例以加载新的 SSL 证书,请确保业务具备重连机制。
2. 选择地域,在实例列表单击目标 SSL 的实例 ID操作列的管理
3. 实例管理页选择数据安全 > SSL 加密,然后在证书有效性后单击更新证书
4. 在弹窗下选择执行时间,单击确认

执行时间:
立即执行:单击确认后立即更新 SSL 证书。
维护时间内:在实例维护时间内更新 SSL 证书,在实例详情页可 修改实例维护时间

修改证书来源

实例开启 SSL 加密后,支持修改 SSL 加密中的证书来源。
说明:
修改 SSL 证书来源过程中,会重启您的数据库实例以加载新的 SSL 证书,请确保业务具备重连机制。
2. 选择地域,在实例列表单击目标实例的实例 ID操作列的管理
3. 实例管理页选择数据安全 > SSL 加密,然后在证书有效性后单击更新证书
4. 在弹窗下修改证书来源,选择执行时间,单击确认

关闭 SSL 加密

说明:
关闭 SSL 加密过程中,会重启您的数据库实例,请确保业务具备重连机制。
2. 选择地域,在实例列表单击需要关闭 SSL 的实例 ID操作列的管理
3. 实例管理页选择数据安全 > SSL 加密,然后在 SSL 加密状态后单击按钮关闭功能。

4. 在弹窗下选择执行时间,单击确认
执行时间
立即执行:单击确认后立即关闭 SSL 加密。
维护时间内:在实例维护时间内关闭 SSL 加密,在实例详情页可 修改实例维护时间

附录1:设置 SSL 时实例相关状态变化

设置 SSL 时,如果执行时间选择为维护时间内,系统会以10分钟每次的频率检查设置 SSL 的相关操作是否命中维护时间窗口,命中后,系统开始部署或关闭 SSL,完成后会立即重启服务。
说明:
如果用户设置了维护时间内操作 SSL,在未到达维护时间窗口时,目标实例状态是非运行状态,这期间此实例不能再发起其他任务,直到 SSL 加密任务完成。
示例
假设维护时间窗口为17:00-18:00,用户在17:05分设置了在维护时间窗口内开启 SSL 加密,则系统会在17:10启动异步调度任务,成功部署 SSL 证书后会立即重启服务。

实例状态变化说明

执行时间选择为维护时间内的实例状态变化如下:
17:05之前,实例状态为运行中
17:05-17:10之间,主实例和 RO 副本实例的状态为实例 SSL 操作中
17:10之后,主实例和 RO 副本实例的状态为任务执行中
直到异步任务完成后,主实例和 RO 副本实例的状态才会变回运行中
执行时间选择为立即执行的实例状态变化如下:
通过控制台发起 SSL 操作任务之后,主实例和 RO 副本实例,状态均变为任务执行中,直到异步任务完成后,状态才变回运行中

实例 SSL 操作状态变化说明

开启 SSL 时实例操作状态的变化如下:
执行时间为立即执行:未开启->开启中->已开启
执行时间为维护时间内:未开启->等待维护时间窗口内开启->开启中->已开启
更新证书时实例操作状态的变化如下:
执行时间为立即执行:已开启->更新中->已开启
执行时间为维护时间内:未开启->等待维护时间窗口内更新->更新中->已开启
关闭 SSL 时实例操作状态的变化如下:
执行时间为立即执行:已开启->关闭中->已关闭
执行时间为维护时间内:已开启->等待维护时间窗口内关闭->关闭中->已关闭

常见问题

如何查看当前连接是否已启用了 SSL 加密连接?

可通过如下命令,查询 sys.dm_exec_connections 系统动态管理视图,来查看当前连接是否已启用了 SSL 加密连接:
SELECT session_id,encrypt_option
FROM sys.dm_exec_connections;
GO
如果在查询 sys.dm_exec_connections 系统动态管理视图时,返回当前连接的会话 ID,并且 encrypt_option 的值为 true,则说明该连接已经成功启用了 SSL 加密。

为什么客户端程序去年还可以连接,今年无法正常连接了?

SSL 的证书具有有效期,有效期为1年,可能是到期了,需要手动更新证书有效期,详细操作参见 更新证书有效期

相关 API

API
描述
接口(ModifyDBInstanceSSL)用于开启\\关闭\\更新实例的 SSL 加密功能。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈