步骤2:配置服务端证书

最近更新时间:2025-09-22 10:39:43

我的收藏
服务端证书用于客户端认证服务端,服务端会使用您选择的证书和客户端建联。为了保证集群的安全,消息队列 MQTT 版提供了默认的服务端证书进行单向认证,如需要使用自有证书进行认证,可以参考本文指引绑定自定义证书。服务端证书需要由您自行购买或自行签发后,托管到 腾讯云 SSL 证书,再在 MQTT 控制台完成配置。

前提条件

已获取 CA 证书。
已安装OpenSSL v1.1.1i或以上版本。

步骤1:准备证书

证书要求

为确保兼容性与安全性,服务端证书 (End Entity Certificate) 须满足以下要求:
1. 必须包含 X.509 v3 Extended Key Usage 扩展,扩展必须包含 serverAuth(TLS Web Server Authentication)参考RFC 5280标准;
即证书应包含必要的 Subject Alternative Name(SAN) 扩展和 Common Name(CN)。由公共可信证书颁发机构 (CA) 签发的证书通常已默认包含上述必要扩展。
说明:
如果证书同时包含 CN 和 SAN,TLS Server Name Indication(SNI) 选择证书时,会优先匹配 SAN 扩展中的域名,如果 SAN 不存在,会兼容使用 CN 字段进行匹配。
现在主流浏览器已忽略 CN 匹配,如 Chrome 58及以上版本,因此在使用 Web Secure Socket 作为 MQTT 传输层时,务必确保 SAN 扩展和 Server Auth 值设置正确。
2. 证书链最多包含5个证书。
3. 证书链文件不超过16 KiB。

使用 CA 证书生成服务端证书

您可以向可信证书颁发机构购买服务端证书,也可以使用 CA 证书签发服务端证书,CA 证书获取方式,请参见 CA 证书。以下以 RSA 算法为例,简单介绍如何使用 CA 证书生成服务端证书。
如果您使用自签的 CA 证书来生成服务端,您可以按照以下指引来生成,服务端证书生成完成后,您可以上传到 SSL 证书
1. 创建一个名称为 client.csr.cfg 的文件,文件内容按照实际情况对下文进行修改。
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn

[dn]
C=CN
ST=SHXXX
L=SH
O=TX
OU=MQTT
emailAddress=xxx@xxx
CN=client-test
2. 创建一个名称为 client.crt.cfg 的文件,内容如下:
authorityKeyIdentifier=keyid,issue
rbasicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyCertSign
3. 执行如下命令生成服务端证书私钥和验证证书的签发请求文件(csr)。
Mac
Windows
openssl req -new -sha256 -nodes -out client.csr -newkey rsa:2048 -keyout client.key -config <(cat client.csr.cfg)
openssl req -new -sha256 -nodes -out client.csr -newkey rsa:2048 -keyout client.key -config client.csr.cfg
4. 执行如下命令生成服务端证书。
openssl x509 -req -in client.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out client.crt -days 500 -sha256 -extfile client.crt.cfg

步骤2:托管服务端证书

将准备好的证书托管到腾讯云 SSL 证书服务,具体操作请参考 上传 SSL 证书指引

步骤3:绑定自定义证书

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


步骤4:配置自定义域名

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

步骤5:(可选)禁用默认服务端证书

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