常见问题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 |
- |
双向认证,即双向证书认证,与单向认证中不同的是,不仅包含单向认证中的设备对平台的证书验证步骤,还包含了平台对设备的证书验证步骤。