双向认证

最近更新时间:2025-11-14 11:28:52

我的收藏
双向认证指客户端与服务端之间相互认证MQTT 通过服务端证书和客户端 CA 证书完成服务端和客户端的认证,以保证客户端和服务端通信链路的安全及可靠。
客户端对服务端的认证 通过 服务端证书 完成, MQTT 提供了默认的服务端证书,您也可以自有证书进行认证。
服务端对客户端的认证通过 CA 证书 完成。客户端发起连接请求时,会将客户端证书传递到服务端,服务端将根据客户端提前注册的 CA 证书验证该客户端证书的正确性,验证通过则允许客户端连接服务端。

约束与限制

单集群内服务端证书的最大数量为3个。
单集群内可以注册的 CA 证书最大数量为 32 个。

注意事项

在初次使用或者更换来自 SSL 证书的 CA 证书或者服务端证书时,需要主账号授权服务角色 MQTT_QCSLinkedRoleInSendSSLcertificate 以获取下载并应用 SSL 证书的功能。
如果在控制台更换了服务端证书和 CA 证书,对应的客户端需要更新证书,以免因为服务端和客户端证书更新不同步导致认证报错。为了保证证书切换过程平滑,消息队列 MQTT 版在您修改完成证书后,会提供十分钟左右的过渡时间,此时间内,新旧证书的认证均会通过认证,请您抓紧时间完成旧证书在客户端代码中的替换。

开启双向认证

1. 登录 MQTT 控制台
2. 在左侧导航栏单击资源管理 > 集群管理,选择好地域后,单击要配置证书的集群的“ID”,进入集群基本信息页面。
3. 在基本信息页面选择认证管理,二级页签选择 X.509 证书管理,点击右侧的编辑图标

,在弹窗中完成证书配置。
认证方式:根据您的业务需求选择合适的认证方式,默认支持单向认证双向认证两种认证方式,专业版/铂金版集群额外支持一机一证的模式(实际也是一种特殊的双向认证方式,具体使用详见 一机一证)。
服务端证书:将使用 MQTT 提供的默认服务端证书,后续您也可以绑定自定义证书。
CA 证书:若认证方式选择了双向认证,需要配置 CA 证书用于服务端对客户端的认证。

4. 单击提交,完成认证方式的配置,后续您需要配置相关的证书。
服务端证书:用于客户端对服务端的认证,可以使用 MQTT 提供的默认服务端证书,也可以绑定自定义证书。
CA 证书:用于服务端对客户端的认证,需手动配置。


配置服务端证书

步骤1:托管服务端证书

MQTT 支持加载托管在腾讯云 SSL 证书服务中的证书,请先在 SSL 证书控制台完成自签名证书托管或购买证书。具体步骤请参考 上传 SSL 证书指引SSL 证书购买流程

步骤2:绑定服务端证书

1. 登录 MQTT 控制台
2. 在左侧导航栏单击资源管理 > 集群管理,选择好地域后,单击目标集群的“ID”,进入集群基本信息页面。
3. 在集群详情页,选择服务端证书管理页签,单击左上角的绑定自定义证书
证书来源:选择 SSL 证书。
服务端证书:在下拉框中勾选托管到腾讯云的 SSL 证书。
4. 单击提交,完成绑定。

说明:
在默认服务端证书的基础上可配置多个自定义证书,当前服务端自定义证书的最大个数上限为3个。
集群支持在开启单向认证/双向认证时,使用多个服务端证书进行认证。

步骤3:配置自定义域名

添加证书后,为了保证客户端的正常连接,证书域名的 CNAME 配置需要进行如下对应修改。如您的域名维护在腾讯云上,您可以前往 云解析控制台 修改。
参数
填写说明
主机记录
填写使用证书的域名
记录类型
CNAME
记录值
如使用公网,填写 -。
如使用 VPC 内网,填写 mqtt-xxxx-nj-vpce-xxx.mqtt.tencenttdmq.com
MX 优先级
无需填写
TTL(秒)
建议保持为默认值600s
假设选择的服务端证书 Subject Alternative Name 包含以下域名:mqtt-abc.compay.com
参考 云解析-CNAME 记录,创建一个 CNAME 记录,将 mqtt-abc.compay.com 解析到集群的接入点提供的域名: mqtt-xxx-sh-public.mqtt.tencenttdmq.com,后续可以通过 mqtt-abc.company.com访问集群。

禁用默认服务端证书

在绑定其他自定义证书后,可以禁用 TDMQ MQTT 版提供的默认服务端证书,具体步骤如下:
在服务端证书管理页面,单击默认服务器证书操作栏的禁用,在弹窗中确认后可以禁用默认证书。


解绑自定义证书

若您不再需要配置的自定义证书,可以将其解绑。解绑后,将无法通过证书对应的域名进行连接。


配置 CA 证书

步骤1:托管 CA 证书

MQTT 支持加载托管在腾讯云 SSL 证书服务中的证书,请先在 SSL 证书控制台完成自签名证书托管或购买证书。具体步骤请参考 上传 SSL 证书指引SSL 证书购买流程

步骤2:绑定 CA 证书

1. 登录 MQTT 控制台
2. 在左侧导航栏单击资源管理 > 集群管理,选择好地域后,单击目标集群的“ID”,进入集群基本信息页面。
3. 在集群详情页,选择 CA 证书管理页签,单击左上角的绑定自定义证书
证书来源:选择 SSL 证书。需授权 MQTT 服务可以下载并应用 SSL 证书能力。
CA 证书:在下拉框中勾选托管到腾讯云的 SSL 证书。

4. 单击提交,完成绑定。

解绑证书

若您不再需要配置的 CA 证书,可以将其解绑。解绑后,将无法通过证书进行连接。


配置 TLS 版本(可选)

若您的集群中部分设备或 SDK 因仅支持特定版本的 TLS 协议,导致与默认配置的服务端无法完成握手而连接失败时,可通过 TLS 协议版本配置的功能调整服务端所支持的 TLS 协议版本范围,使通信双方能够协商出一个共同认可的协议版本,从而解决因版本不匹配产生的兼容性问题,确保所有组件都能成功建立安全连接,保障集群通信的稳定性。
注意:
修改服务端支持的 TLS 协议版本配置后,将立即生效,影响集群下所有新连接/重新连接的客户端,请谨慎操作。
服务端默认支持 TLS 1.0 至 TLS 1.3 的全部版本,如需修改可参考如下配置步骤:
1. 进入 集群管理 > 认证管理,二级页签选择 X.509 证书管理,单击 TLS 协议版本配置右侧的编辑图标

2. 在弹窗中选择支持的 TLS 版本范围。由于TLS协议仅支持开启连续版本或单一版本,因此修改配置方法如下:
​​若要启用连续版本​​(如 TLS 1.1 和 TLS 1.2):请先选择其中一个版本作为“最低版本”,再选择另一个版本作为“最高版本”,单击确定提交配置。
​​若要仅启用单个版本​​(如仅启用 TLS 1.2):请​​连续两次单击该版本​​,单击确定提交配置。