文档

客户端证书认证

更新时间:
一键部署

云消息队列 MQTT 版支持基于X.509证书的双向认证,分别通过服务器证书和设备证书完成服务端和客户端的认证,保证客户端和服务端通信链路的安全性和可靠性。本文介绍客户端证书认证的原理和流程。

使用限制

仅铂金版、专业版实例支持双向认证能力,基础版和Serverless版实例暂不支持。

单向认证无实例类型限制。

单向认证

客户端认证服务端

云消息队列 MQTT 版

客户端对服务端的认证通过服务器证书完成。客户端发起连接请求时,服务端的证书会随着请求握手自动下发给客户端,客户端将验证服务器证书的正确性,若验证通过则允许服务端连接。

双向认证

客户端认证服务端

云消息队列 MQTT 版客户端对服务端的认证通过服务端器书完成。客户端将验证服务器证书的正确性,若验证通过则允许与服务端建立链接。服务器证书需要您自行购买或自行签发后,托管到数字证书管理服务,并通过服务器证书重启云消息队列 MQTT 版服务。

具体操作,请参见服务器证书管理

服务端认证客户端

云消息队列 MQTT 版服务端对客户端的认证通过对设备证书的认证完成。客户端发起请求连接时,会与服务端按照TLS 1.2协议进行交互。交互过程中客户端会将设备证书传递到服务端,服务端将根据客户端提前注册的CA证书验证该设备证书的正确性,若验证通过则允许客户端连接服务端。

具体认证流程,请参见下文客户端认证流程

  • CA证书:向证书颁发机构申请或自己创建。CA证书可用于签发设备证书、服务器证书、验证证书。

    CA证书必须在云消息队列 MQTT 版服务端中注册才能用于验证设备证书的正确性。

    CA证书相关操作,请参见CA证书管理

  • 设备证书:由CA证书签发,每个设备的设备证书全局唯一。

    设备证书必须在服务端进行注册,才能用于证书认证。

    客户端设备证书注册流程如下:客户端第一次连接服务端时,携带的设备证书未在服务端注册过,服务端支持根据设备证书信息匹配对应的CA证书,并将设备证书自动注册到服务端中。后续客户端请求时,服务端可直接对设备证书进行认证,无需再匹配CA证书。

客户端认证流程

云消息队列 MQTT 版服务端对客户端的证书认证流程如下:

认证流程
  1. 客户端发起TCP连接请求,通过MQTT协议将携带的设备证书发送给云消息队列 MQTT 版服务端。

  2. 服务端收到设备证书后,判断该设备证书是否已在服务端注册。

    • 是:设备证书已注册,继续判断设备证书状态。

      • 是:设备证书已激活,判断设备证书是否认证通过,下一步,步骤5。

      • 否:设备证书未激活。断开连接,流程结束。

    • 否:设备证书未注册,则继续匹配CA证书。下一步,步骤3。

  3. 服务端根据设备证书携带的信息匹配相关的CA证书,判断CA证书是否在服务端注册。

    • 是:判断CA证书状态。下一步,步骤4。

    • 否:断开连接,流程结束。

  4. 判断CA证书是否激活。

    • 是:CA证书已激活。下一步,步骤5。

    • 否:CA证书未激活。断开连接,流程结束。

  5. 根据服务端注册的CA证书对客户端携带的设备证书进行认证,判断认证是否通过。

    • 是:设备证书认证成功。下一步,步骤6。

    • 否:认证失败。断开连接,流程结束。

  6. 客户端设备证书认证通过,服务端允许客户端接入,双方开始通信,等待消息收发。

相关操作

OpenAPI

控制台操作

  • 服务器证书管理:支持将购买或自签的服务器证书托管到数字证书管理服务,并使用服务器证书初始化云消息队列 MQTT 版实例。

  • CA证书管理:支持注册CA证书、修改CA证书状态和删除CA证书。

  • 设备证书管理:支持查询设备证书、修改设备证书状态和删除设备证书。

  • 本页导读 (1)
文档反馈