OpenThread 提供 Secure CoAP 伺服器和用戶端功能,可讓裝置連線至 Secure CoAP 伺服器上的資源,並觀察每個資源目前的狀態變化。
Secure CoAP 使用資料元傳輸層安全標準 (DTLS) 建立安全的端對端連線。
CLI 中提供的 Secure CoAP 代理程式可做為 Secure CoAP 用戶端或 Secure CoAP 伺服器。
本指南提供的基本工作使用一些較常見的 Secure CoAP (coaps
) 指令。
安全 CoAP 指令
如需 Secure CoAP 指令清單,請輸入 help
:
coaps help
connect
delete
disconnect
get
isclosed
isconnactive
isconnected
post
psk
put
resource
set
start
stop
x509
Done
CLI 指令參考資料
如需所有指令的說明和語法,請參閱 CLI 指令參考資料。 Secure CoAP 指令會以 coaps connect 按字母順序開始。
安全 CoAP 伺服器和用戶端指令使用範例
本範例使用基本 CLI 指令來啟動安全 CoAP 伺服器和用戶端、在 Secure CoAP 伺服器上建立測試資源,以及讓 Secure CoAP 用戶端與資源互動。樣本資料僅供參考。
設定 DTLS 加密套件
coaps
CLI 提供 psk
和 x509
指令,可與 PSK 金鑰和 X.509 憑證搭配使用。
如需指令語法和範例,請參閱「coaps psk」和「coaps x509」這兩篇文章。
設定 Secure CoAP 伺服器
在 Secure CoAP 伺服器節點上執行下列步驟:
啟動 Secure CoAP 代理程式。
coaps start
Done建立測試資源。
coaps resource test-resource
Done
設定 Secure CoAP 用戶端
在 Secure CoAP 用戶端節點上執行下列步驟:
啟動 Secure 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
選項,請參閱「銅級貼文」。您可以使用
put
指令修改資源:coaps put test-resource con hellothere
Done coaps response from fdde:ad00:beef:0:9903:14b:27e0:5744在本例中,
con
表示您希望將可靠的訊息 (透過可確認訊息 (con
) 取得) 傳送至安全 CoAP 伺服器。預設設定是傳送無法確認的訊息 (non-con
)。當
type
為con
或non-con
時,字串hellothere
是使用選用payload
參數的範例。詳情請參閱 coaps put。伺服器會以 IPv6 位址回應,表示要求已處理。
傳送至 Secure 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
。