常见问题1:设备发放流程中使用到的证书都有哪些,它们有何区别?
设备发放提供证书认证方式,证书认证为双向认证过程,涉及到设备发放(平台)和设备两端,过程如下图所示。

双向证书认证过程使用到了如下几类证书:
证书 | 说明 | 证书及其私钥持有者 | 签发者 |
|---|---|---|---|
服务端证书 | 步骤2中,设备发放设备侧将该证书返回设备。 | 设备发放设备侧持有 | 权威CA(服务端证书的CA证书)签发 |
服务端CA证书 | 步骤3中,客户端使用该服务端CA证书验证服务端证书,通常为权威CA证书,获取方式见MQTT CONNECT连接鉴权。 | 权威CA机构持有 | 权威CA机构签发 |
设备证书(客户端证书) | 步骤4中,设备将该证书发送给设备发放设备侧。 | 设备 | CA证书 |
CA证书(设备CA证书/客户端CA证书) | 步骤5中,设备发放设备侧使用该CA证书验证来自设备的客户端证书。用户通过应用侧上传该证书到设备发放平台。 | 用户 | 通常为自签发 |
样例中各类证书常用文件名:
证书 | 文件名 | MQTT.fx中的字段名 |
|---|---|---|
服务端证书 | - | - |
服务端CA证书 | 如下其中之一: GlobalSignRSAOVSSLCA2018.bks(android)GlobalSignRSAOVSSLCA2018.crt.pem(c或java)GlobalSignRSAOVSSLCA2018.jks(java) bsca.jks(java) bsrootcert.pem(c) | CA File |
设备证书(客户端证书) | client.crt | Client Certificate File |
设备证书(客户端证书)私钥 | client.key | Client Key File |
CA证书(设备CA证书/客户端CA证书) | server.crt | - |

双向认证,即双向证书认证,与单向认证中不同的是,不仅包含单向认证中的设备对平台的证书验证步骤,还包含了平台对设备的证书验证步骤。

