OpenThread 提供安全 CoAP 服务器和客户端功能,使设备能够连接到安全 CoAP 服务器上的资源并观察每个资源的当前状态变化。
安全 CoAP 使用数据报传输层安全协议 (DTLS) 建立安全的端到端连接。
CLI 中提供的安全 CoAP 代理可充当安全 CoAP 客户端或安全 CoAP 服务器。
本指南介绍了一些基本任务,您可以使用一些更常用的安全 CoAP (coaps
) 命令。
安全 CoAP 命令
如需查看安全 CoAP 命令列表,请输入 help
:
coaps help
connect
delete
disconnect
get
isclosed
isconnactive
isconnected
post
psk
put
resource
set
start
stop
x509
Done
CLI 命令参考文档
如需了解所有命令的说明和语法,请参阅 CLI 命令参考文档。安全 CoAP 命令以 Coaps connect 的字母顺序开头。
安全 CoAP 服务器和客户端命令用法示例
本示例使用基本 CLI 命令来启动安全 CoAP 服务器和客户端,在安全 CoAP 服务器上创建测试资源,并让安全 CoAP 客户端与该资源进行交互。示例数据仅作说明之用。
配置 DTLS 密码套件
coaps
CLI 提供了可与 PSK 密钥和 X.509 证书搭配使用的 psk
和 x509
命令。如需查看命令语法和示例,请参阅 coaps psk 和 coaps x509。
设置安全 CoAP 服务器
在安全 CoAP 服务器节点上,执行以下步骤:
启动安全 CoAP 代理。
coaps start
Done创建测试资源。
coaps resource test-resource
Done
设置安全 CoAP 客户端
在安全 CoAP 客户端节点上,执行以下步骤:
启动安全 CoAP 代理:
coaps start
Done运行
connect
命令以初始化与对等方的 DTLS 会话:coaps connect fdde:ad00:beef:0:9903:14b:27e0:5744
Done coaps connected运行
get
命令以获取有关资源的信息:coaps get test-resource
Done coaps response from fdde:ad00:beef:0:9903:14b:27e0:5744 with payload: 68656c6c6f576f726c6400服务器响应的最后一部分是术语
with payload:
,后跟十六进制数字格式的所有载荷字节。在示例中,with payload: 68656c6c6f576f726c6400
表示资源的当前载荷是十六进制值68656c6c6f576f726c6400
,该值将转换为字符串helloWorld
。如需详细了解如何使用payload
选项,请参阅 Coaps post。您可以使用
put
命令修改资源:coaps put test-resource con hellothere
Done coaps response from fdde:ad00:beef:0:9903:14b:27e0:5744在此示例中,
con
表示您要向安全 CoAP 服务器发送使用可确认消息 (con
) 获取的可靠消息。默认设置为发送不可确认 (non-con
) 消息。字符串
hellothere
是在type
为con
或non-con
时使用可选payload
参数的示例。如需了解详情,请参阅 Coaps put。服务器会使用其 IPv6 地址进行响应,以表明请求已处理。
发送至安全 CoAP 服务器的响应
在服务器上,此示例的输出类似于以下内容:
coaps request from fdde:ad00:beef:0:9e68:576f:714c:f395 GET coaps response sent coaps request from fdde:ad00:beef:0:9e68:576f:714c:f395 PUT with payload: 68656c6c6f7468657265 coaps response sent
68656c6c6f7468657265
的 payload
值是转换为 ASCII 代码字节序列的字符串 hellothere
。