云消息队列 MQTT 版支持使用设备证书进行客户端的接入认证,CA证书可用于签发设备证书、服务器证书和验证证书,本文介绍如何生成自签名CA证书,并将CA证书注册到云消息队列 MQTT 版服务。
背景信息
客户端使用设备证书进行认证时,服务端将使用设备证书关联的CA证书来验证设备证书是否正确,CA证书必须在云消息队列 MQTT 版服务端注册后才能用于验证设备证书。
注册CA证书即将CA证书信息上传至云消息队列 MQTT 版服务端,并将CA证书与指定实例进行绑定。实例和CA证书的关系如下:
- 一个实例可注册多个CA证书。
- 一个CA证书可被注册给多个实例。
使用限制
- 仅铂金版实例支持CA证书管理功能。
- 您获取的CA证书的SN序列号必须唯一。
- CA证书的SN码不能超过128 Byte。
- CA证书支持RSA、ECC算法。
前提条件
已安装OpenSSL v1.1.1i或以上版本。
自签CA证书
您可直接向可信机构购买签发的CA证书,也可通过自签名生成私有的CA证书,本操作以OpenSSL为例为您介绍如何生成自签名CA证书。
RSA算法证书
- 生成私有RSA CA证书的私钥。执行如下命令:
openssl genrsa -out CA.key 2048
- 使用CA证书私钥创建私有CA的CSR文件。执行如下命令:
openssl req -new -key CA.key -out CA.csr
界面返回如下示例,请根据提示输入对应参数。
Country Name (2 letter code) [AU]: State or Province Name (full name) []: Locality Name (for example, city) []: Organization Name (for example, company) []: Organizational Unit Name (for example, section) []: Common Name (e.g. server FQDN or YOUR name) []:i29adsjfp29jfj92jlajsdf****** Email Address []:
- 生成自签名的RSA CA证书。执行如下命令:
- Mac
openssl x509 -req -extfile /System/Library/OpenSSL/openssl.cnf -extensions v3_ca -in CA.csr -out CA.crt -signkey CA.key -CAcreateserial -days 3650
- CentOS
openssl x509 -req -extfile /etc/pki/tls/openssl.cnf -extensions v3_ca -in CA.csr -out CA.crt -signkey CA.key -CAcreateserial -days 3650
- Mac
- 查看生成的RSA CA证书。执行如下命令:
openssl x509 -in CA.crt -text
ECC算法证书
- 生成私有ECC CA证书的私钥。执行如下命令:
openssl ecparam -genkey -name prime256v1 -out CA.key
- 生成ECC CA证书。执行如下命令:
- Mac
openssl req -new -x509 -days 3650 -config /System/Library/OpenSSL/openssl.cnf -extensions v3_ca -key CA.key -out CA.crt
- CentOS
openssl req -new -x509 -days 3650 -config /etc/pki/tls/openssl.cnf -extensions v3_ca -key CA.key -out CA.crt
界面返回如下示例,请根据提示输入对应参数。
Country Name (2 letter code) [AU]: State or Province Name (full name) []: Locality Name (for example, city) []: Organization Name (for example, company) []: Organizational Unit Name (for example, section) []: Common Name (e.g. server FQDN or YOUR name) []:i29adsjfp29jfj92jlajsdf****** Email Address []:
- Mac
- 查看生成的ECC CA证书。执行如下命令:
openssl x509 -in CA.crt -text
注册CA证书
说明 CA证书注册后,默认为激活状态。
- 获取CA证书的注册码。
- 创建CA证书的验证证书。若您需要将CA证书注册到云消息队列 MQTT 版服务端,需要证明您有该CA证书的私钥。因此您需要使用CA证书创建一个验证证书,并在创建时填写云消息队列 MQTT 版提供的注册码,系统会根据您创建的验证证书和注册码判断您是否可以使用该CA证书。
- 上传CA证书和验证证书。
- 在CA证书页面单击注册证书。
- 在弹出的注册CA证书面板中,分别单击上传验证证书和上传CA证书,按提示上传CA证书和验证证书,然后单击确定。
下载CA证书
您可以将CA证书下载到本地进行备份或查看其详细信息。
在CA证书列表中,选择目标CA证书,在其操作列单击下载。
查询CA证书
查询所有CA证书
在CA证书页面,证书列表中展示该实例下所有注册的CA证书。
精确查询CA证书
在CA证书列表上方的输入框中,输入指定CA证书的SN序列号,然后单击搜索。
查询CA证书下的设备证书
在CA证书列表中,选择目标CA证书,在其操作列单击设备证书。
页面将自动跳转到设备证书,且列表中展示目标CA证书所签发且已注册的所有设备证书。
激活或注销CA证书
您可以通过激活和注销改变CA证书的生效状态。证书状态包含激活和未激活。CA证书在服务端注册后默认为激活状态。
重要 注销CA证书,会将其签发的且在服务端注册的所有设备证书一起注销;同样激活CA证书也会将其签发的设备证书一起激活。
- 证书为激活状态:若您需要临时禁用某个证书,可以将该证书注销,注销后证书不可用。
- 证书为未激活状态:若您要恢复某个证书,可以将该证书重新激活。
在CA证书列表中,选择目标CA证书,在其操作列单击注销或激活。
删除CA证书
重要 删除CA证书表示将指定的CA证书信息及其签发的所有设备证书信息从服务端的存储记录中全部删除,并非将证书内容直接删掉。删除后CA证书和其签发的设备证书都将无法用于认证,重新注册后才能继续使用。
- 在CA证书列表中,选择目标CA证书,在其操作列单击删除。
- 在弹出的提示对话框中单击确定。