云消息队列 MQTT 版支持使用设备证书进行客户端的接入认证。本文介绍如何使用CA证书签发设备证书,并在云消息队列 MQTT 版控制台管理设备证书,包括查询证书、下载证书、激活或注销证书以及删除证书。
背景信息
设备证书是由CA根证书签发给客户端设备使用的数字证书,用于客户端和服务端连接时,服务端对客户端进行安全认证。认证通过后服务端和客户端可基于证书内的加密密钥进行安全通信,若认证不通过则服务端拒绝客户端接入。
使用设备证书认证时,必须保证签发该设备证书的CA证书已在云消息队列 MQTT 版服务端中注册。更多信息,请参见注册CA证书。
客户端设备使用设备证书进行接入认证时,服务端会根据已注册的CA证书验证设备证书是否正确,若CA证书和设备证书匹配成功,则客户端认证通过,且系统会将该设备证书自动注册到服务端中。
使用限制
- 仅铂金版实例支持设备证书管理功能。
- 云消息队列 MQTT 版仅支持对已在服务端注册的设备证书进行操作。
- 设备证书的SN序列号必须唯一。
前提条件
- 已获取CA证书。
- 已安装OpenSSL v1.1.1i或以上版本。
使用CA证书签发设备证书
本操作以自签名CA证书为例签发设备证书,自签名CA证书生成步骤,请参见自签CA证书。
- 准备配置文件。
- 根据配置生成设备证书私钥和CSR文件。
openssl req -new -sha256 -nodes -out client.csr -newkey rsa:2048 -keyout client.key -config <(cat client.csr.cfg)
- 生成设备证书。
openssl x509 -req -in client.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out client.crt -days 500 -sha256 -extfile client.crt.cfg
- 生成设备证书链。
touch client_chain.crt cat client.crt >> client_chain.crt cat CA.crt >> client_chain.crt 查看证书链内容。 cat client_chain.crt
说明- 设备证书需要与签发的CA证书先生成证书链,才能用于连接到服务端。
- 证书链生成实际为将几个证书的内容拼接到一起,顺序为子级证书内容在上,父级证书内容在下。
查询设备证书
您可以查看指定实例下所有已注册过的设备证书,或根据证书SN序列号进行精确查找。
- 登录云消息队列 MQTT 版控制台,并在左侧导航栏单击实例列表。
- 在顶部菜单栏选择目标地域,然后在实例列表中单击实例名称进入实例详情页面。
- 在左侧导航栏选择 。在设备证书页面,显示所有已在服务端注册过的设备证书。
- 在设备证书列表上方的搜索框中输入设备证书SN序列号或CA证书SN序列号查询指定设备证书。
- 输入设备证书SN序列号,查询结果为该SN序列号对应的唯一的设备证书。
- 输入CA证书SN序列号,查询结果为该CA证书所签发的且已在服务端注册的所有设备证书。
下载设备证书
您可以将设备证书下载到本地进行备份或查看其详细信息。
在设备证书列表中,选择目标证书,在其操作列单击下载。
激活或注销设备证书
您可以通过激活和注销操作修改证书的生效状态。证书状态包含激活和未激活。设备证书在服务端注册后默认为激活状态。
- 证书为激活状态:若您需要临时禁用某个证书,可以将该证书注销,注销后证书不可用且状态变为未激活。
- 证书为未激活状态:若您要恢复某个证书,可以将该证书重新激活,激活后证书状态变为激活。
在设备证书列表中,选择目标证书,在其操作列单击注销或激活。
删除设备证书
删除设备证书表示将指定的设备证书的注册信息从服务端的存储记录中删除,并非将证书内容直接删掉。
设备证书删除后,客户端使用该设备证书进行接入认证,如果关联的CA证书正确并有效,该设备证书会被重新自动注册到服务端,并通过认证。
- 在设备证书列表中,选择目标证书,在其操作列单击删除。
- 在弹出的提示对话框中单击确定。