离线
buildroot依赖:
BR2_PACKAGE_CMOCKA=y
BR2_PACKAGE_OPENSSL=y
ubuntu系统依赖:
sudo apt-get install libssl3 libpcre2-32-0 libssl-dev libcmocka-dev pkg-config
离线
makefile 修改:
examples\openssl_publisher.c 修改:
离线
找个亚马逊服务器试一试:
离线
mosquitto_sub --cafile ${FILE_CA} --cert ${FILE_CERT} --key ${FILE_KEY} -h ${HOST_MQTT} -p ${PORT} -i ${ID_CMD_LINE} -t "$aws/events/#"
不知道为什么网页里面可以订阅 $aws/events/#,而mosquitto_sub订阅不到。
离线
当 IoT 设备第一次连接 AWS IoT Core 时,如果它集成的设备证书是由已在 Core 上注册的 CA 证书签发而来,那么相应的设备证书会实现自动注册
注册后的默认状态为“PENDING_ACTIVATION”,意味着虽然设备证书已经成功注册,但是还处于等待激活的状态。同时,这个连接动作默认会发一条消息到 AWS IoT Core 的 MQTT Topic “$aws/events/certificates/registered/” 上,格式如下
{
"certificateId": "<certificateID>",
"caCertificateId": "<caCertificateId>",
"timestamp": "<timestamp>",
"certificateStatus": "PENDING_ACTIVATION",
"awsAccountId": "<awsAccountId>",
"certificateRegistrationTimestamp": "<certificateRegistrationTimestamp>"
}
可以通过iot规则触发lambda函数完成证书激活
这个没有看懂。
离线
可是MQTTX 订阅 $aws/events/#正常,Ubuntu16.04和Ubuntu22.04 mosquitto_sub 订阅都失败,一脸懵逼。
离线
终于搞定了。
双引号里面的字符会转义,单引号不会转义。
比较过N次,MQTTX参数和命令行一毛一样,MQTTX就是可以的,然后看到MQTTX的系统消息发现的。
离线