产品定价 立即试用
云平台
欧洲地区
文档 > 安全 > CoAP传输 > 基于X.509证书的认证
入门
指南 API 常见问题
目录

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:克隆libcoap的git仓库:
1
git clone https://github.com/obgm/libcoap --recursive --depth 1
  • 步骤 2:进入libcoap目录:
1
cd libcoap
  • 步骤 3:执行以下命令,然后运行 ./autogen.sh 脚本:
1
sudo apt-get update
1
sudo apt-get install autoconf libtool libssl-dev
1
./autogen.sh
  • 步骤 4:使用以下选项运行 ./configure 脚本:
1
./configure --with-openssl --disable-doxygen --disable-manpages --disable-shared
  • 步骤 5:执行以下命令:
1
make
  • 步骤 6:执行以下命令:
1
sudo make install

最后,运行以下示例脚本以验证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实例主机。