CA证书管理

更新时间:

云消息队列 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证书。

下载并安装OpenSSL

  1. 下载并安装OpenSSL

    说明

    安装完成后,如使用Windows系统需要将OpenSSL的安装目录的bin子目录添加到您的系统PATH环境变量中。

  2. 打开命令提示符。

RSA算法证书

  1. 执行如下命令,生成私有RSA CA证书的私钥。

    openssl genrsa -out CA.key 2048
  2. 执行如下命令,使用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) []:
        Email Address []:
  3. 执行如下命令,生成自签名的RSA CA证书CA.crt,请根据操作系统选择对应的执行命令,在不同操作系统中,extfile的位置有所不同。

    • 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
    • Windows

      openssl x509 -req -extfile C:\Progra~1\OpenSSL-Win64\bin\cnf\openssl.cnf  -extensions v3_ca -in CA.csr -out CA.crt -signkey CA.key -CAcreateserial -days 3650
  4. 查看生成的RSA CA证书。

    执行如下命令:

    openssl x509 -in CA.crt -text

ECC算法证书

  1. 执行如下命令,生成私有ECC CA证书的私钥。

    openssl ecparam -genkey -name prime256v1 -out CA.key
  2. 执行如下命令,生成自签名的ECC CA证书CA.crt

    • 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
    • Windows

      openssl req -new -x509 -days 3650 -config C:\Progra~1\OpenSSL-Win64\bin\cnf\openssl.cnf -extensions v3_ca -key CA.key -out CA.crt
      说明

      此步骤如有报错请检查命令中的openssl.cnf文件路径是否正确。

    界面返回如下示例,请根据提示输入对应参数。

        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) []:
        Email Address []:
  3. 执行如下命令,查看生成的ECC CA证书。

    openssl x509 -in CA.crt -text

注册CA证书

说明

CA证书注册后,默认为激活状态。

  1. 获取CA证书的注册码。

    1. 登录云消息队列 MQTT 版控制台,并在左侧导航栏单击实例列表

    2. 在顶部菜单栏选择目标地域,然后在实例列表中单击目标实例名称进入实例详情页面,并在左侧导航栏选择证书管理 > CA证书

    3. CA证书页面单击注册证书

      在弹出的面板中即可获取CA证书的注册码。获取注册码

  2. 创建CA证书的验证证书。

    若您需要将CA证书注册到云消息队列 MQTT 版服务端,需要证明您有该CA证书的私钥。因此您需要使用CA证书创建一个验证证书,并在创建时填写云消息队列 MQTT 版提供的注册码,系统会根据您创建的验证证书和注册码判断您是否可以使用该CA证书。

    RSA算法证书

    1. 执行如下命令,生成验证证书的私钥。

      openssl genrsa -out verificationCert.key 2048
    2. 执行如下命令,生成验证证书的CSR文件。

      openssl req -new -key verificationCert.key -out verificationCert.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 []:
      重要

      其中CommonName必须输入,请替换为您在步骤1中获取的CA证书的注册码,其他参数为可选。

    3. 执行如下命令,生成CA证书的验证证书verificationCert.crt

      openssl x509 -req -in verificationCert.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out verificationCert.crt -days 300 -sha512
      说明

      如果不是自签名的CA证书,可以将生成的CSR证书签名请求文件提交给证书颁发机构,由证书颁发机构生成证书。

    ECC算法证书

    1. 执行如下命令,生成验证证书的私钥。

      openssl ecparam -out verificationCert.key -name prime256v1 -genkey
    2. 执行如下命令,生成验证证书的CSR文件。

      openssl req -new -key verificationCert.key -out verificationCert.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 []:
      重要

      其中CommonName必须输入,请替换为您在步骤1中获取的CA证书的注册码,其他参数为可选。

    3. 执行如下命令,生成CA证书的验证证书verificationCert.crt

      openssl x509 -req -in verificationCert.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out verificationCert.crt -days 300 -sha512
      说明

      如果不是自签名的CA证书,可以将生成的CSR证书签名请求文件提交给证书颁发机构,由证书颁发机构生成证书。

  3. 上传CA证书CA.crt和验证证书verificationCert.crt

    1. CA证书页面单击注册证书

    2. 在弹出的注册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证书和其签发的设备证书都将无法用于认证,重新注册后才能继续使用。

  1. 在CA证书列表中,选择目标CA证书,在其操作列单击删除

  2. 在弹出的提示对话框中单击确定