目录
CoAP over DTLS的X.509证书认证
X.509证书用于为CoAP over DTLS配置 mutual(双向)认证。
它与 access token 认证类似,但使用X.509证书替代token。
以下说明如何将使用X.509证书的CoAP客户端连接到ThingsBoard Cloud。
步骤1:生成客户端证书
使用以下命令生成基于自签名EC的私钥和x509证书。
该命令基于 openssl 工具,您的工作站上通常已安装:
1
2
| openssl ecparam -out key.pem -name secp256r1 -genkey
openssl req -new -key key.pem -x509 -nodes -days 365 -out cert.pem
|
命令输出为私钥文件 key.pem 和公钥证书 cert.pem。
后续步骤将使用它们。
步骤2:将客户端公钥配置为设备凭据
进入 ThingsBoard Web UI -> Devices -> Your Device -> Device Credentials。
选择 X.509 Certificate 设备凭据,插入 cert.pem 文件内容并保存。
也可通过 REST API 完成。
步骤3:使用X.509证书连接DTLS CoAP客户端
按以下步骤在Linux上安装支持DTLS的CoAP客户端:
1
| git clone https://github.com/obgm/libcoap --recursive --depth 1
|
- 步骤 3:执行以下命令,然后运行 ./autogen.sh 脚本:
1
| sudo apt-get install autoconf libtool libssl-dev
|
- 步骤 4:使用以下选项运行 ./configure 脚本:
1
| ./configure --with-openssl --disable-doxygen --disable-manpages --disable-shared
|
最后,运行以下示例脚本以验证DTLS的X.509证书认证,并订阅共享属性更新:
以下coap-client示例演示如何连接到 ThingsBoard Cloud 或任何具有有效且受信任证书的ThingsBoard CoAP服务器。
1
2
| coap-client-openssl -v 9 -c cert.pem -j key.pem -m POST \
-t "application/json" -e '{"temperature":43}' coaps://coap.eu.thingsboard.cloud/api/v1/telemetry
|
别忘了将 coap.eu.thingsboard.cloud 替换为您的ThingsBoard实例主机。