Пример удаленного контроля ESP8266 через Amazon AWS IoT MQTT сервер: mongoose-iot/fw/examples/c_mqtt at master · cesanta/mongoose-iot · GitHub
mosquitto_pub --cafile ca.crt --cert client.crt --key client.key -h *.*.*.* -t "/test/gpio" -m "msg" -p 8883 -d -u <user> -P ***
1480428109: Received PUBLISH from mosqpub/12221-*** (d0, q0, r0, m0, '/test/gpio', ... (3 bytes))
1480428109: Received DISCONNECT from mosqpub/12221-***
1480429131: Sending CONNACK to mosqpub/13027-*** (0, 0)
mqtt_global_connect MQTT connecting to *.*.*.*:8883
ev_handler MQTT Connect (0)
ev_handler MQTT Connect (0)
ev_handler MQTT Disconnect
mg_connect_opt 0x3fff3bdc *.*.*.*:8883 client.crt,client.key,ca.crt
mg_ssl_if_conn_init 0x3fff3bdc client.crt,client.key,ca.crt
set_errno spiffs error: -10003
set_errno spiffs error: -10003
set_errno spiffs error: -10003
set_errno spiffs error: -10003
mg_do_connect 0x3fff3bdc tcp://*.*.*.*:8883
mg_lwip_if_connect_tcp 0x3fff3bdc tcp_bind = 0
mg_lwip_if_connect_tcp 0x3fff3bdc tcp_connect 0x3fff405c = 0
mg_add_conn 0x3fff0098 0x3fff3bdc
miot_poll_timer_cb poll tmr 0x3ffe9cd4 0x3fff0098
mg_call 0x3fff1afc user ev=6 ev_data=0x3fffff00 flags=0 rmbl=0 smbl=0
mg_call 0x3fff1afc after user flags=0 rmbl=0 smbl=0
mongoose_poll New heap free LWM: 26544
miot_poll_timer_cb poll tmr 0x3ffe9cd4 0x3fff0098
mg_call 0x3fff1afc user ev=6 ev_data=0x3fffff00 flags=0 rmbl=0 smbl=0
mg_call 0x3fff1afc after user flags=0 rmbl=0 smbl=0
mg_lwip_tcp_conn_cb 0x3fff3bdc connect to *.*.*.*:8883 = 0
mg_lwip_tcp_write 0x3fff405c tcp_write 65 = 0
kr_send 0x3fff3bdc mg_lwip_tcp_write 65 = 65
kr_recv 256 - nothing to read
mg_lwip_ssl_do_hs 0x3fff3bdc 24 0 -1
mongoose_poll New heap free LWM: 25688
miot_poll_timer_cb poll tmr 0x3ffe9cd4 0x3fff0098
mg_call 0x3fff1afc user ev=6 ev_data=0x3fffff00 flags=0 rmbl=0 smbl=0
mg_call 0x3fff1afc after user flags=0 rmbl=0 smbl=0
mg_lwip_tcp_sent_cb 0x3fff3bdc 0x3fff405c 65
mg_call 0x3fff3bdc proto ev=4 ev_data=0x3ffffef0 flags=24 rmbl=0 smbl=48
mg_call 0x3fff3bdc after proto flags=24 rmbl=0 smbl=48
mg_lwip_tcp_recv_cb 0x3fff3bdc 0x3fff405c 1460 0
miot_poll_timer_cb poll tmr 0x3ffe9cd4 0x3fff0098
kr_recv 256 1460 1460 1460
kr_recv 86 1460 1204 1460
kr_recv 256 1460 1118 1460
kr_recv 256 1460 862 1460
kr_recv 256 1460 606 1460
kr_recv 256 1460 350 1460
kr_recv 256 1460 94 1460
kr_recv 162 - nothing to read
mg_lwip_ssl_do_hs 0x3fff3bdc 24 0 -1
mg_call 0x3fff1afc user ev=6 ev_data=0x3fffff00 flags=0 rmbl=0 smbl=0
mg_call 0x3fff1afc after user flags=0 rmbl=0 smbl=0
mg_lwip_tcp_recv_cb 0x3fff3bdc 0x3fff405c 981 0
kr_recv 162 981 981 981
kr_recv 256 981 819 981
kr_recv 256 981 563 981
kr_recv 256 981 307 981
mg_ssl_if_ssl_err 0x3fff3bdc 0x3fff3ad4 SSL error: -1 1
mg_lwip_ssl_do_hs 0x3fff3bdc 24 0 -3
mg_if_connect_cb 0x3fff3bdc connect, err=-3
miot ls --port /dev/ttyUSB0Покажите вывод:
miot ls
miot config-get mqtt
readme.txt
conflib.js
sys_ro_vars_schema.json
test.txt
index.html
sys_init.js
conf_defaults.json
ca.pem
demo.js
README.txt
I2C.js
app.js
sys_config_schema.json
console.log
conf.json
client.crt
client.key
ca.crt
{
"clean_session": false,
"keep_alive": 60,
"reconnect_timeout_max": 60,
"reconnect_timeout_min": 10,
"server": "*.*.*.*:8883",
"ssl_ca_cert": "ca.crt",
"ssl_cert": "client.crt",
"ssl_key": "client.key"
}
Есть конечно.Нет. Не подключаюсь к AWS. Я поднял у себя брокер-сервер MQTT.
Без сертификатов при аутентификации c psk все работает. Но хотелось бы использовать сертификат.Код:mosquitto version 1.4.10
Или такой возможности нет?
ev_handler MQTT Connect (0)
ev_handler MQTT Connect (0)
Есть конечно.
Судя по логу, соединение устанавливается:
(0) это успех CONNECT.Код:ev_handler MQTT Connect (0) ev_handler MQTT Connect (0)
Даже тот факт что сервер видит CONNECT от ESP значит что SSL соединился.
Проблема почему происходит Disconnect.
На стороне сервера есть логи?
1480435003: New connection from x.x.x.x on port 8883.
1480435003: Socket error on client <unknown>, disconnecting.
1480435226: New connection from x.x.x.x on port 8883.
1480435226: New client connected from x.x.x.x as mosqpub/17814-xxx (c1, k60, u'hw-esp8266').
1480435226: Sending CONNACK to mosqpub/17814-xxx (0, 0)
1480435226: Received PUBLISH from mosqpub/17814-xxx (d0, q0, r0, m0, '/test/gpio', ... (3 bytes))
1480435226: Received DISCONNECT from mosqpub/17814-xxx
1480435226: Client mosqpub/17814-xxx disconnected.
mg_ssl_if_ssl_err 0x3fff3bdc 0x3fff3ad4 SSL error: -1 1
sha512WithRSAEncryption
sha1WithRSAEncryption
mqtt_global_connect MQTT connecting to x.x.x.x:8883
ev_handler MQTT Connect (1)
ev_handler CONNACK: 0
sub Subscribed to /hw-esp8266/gpio
Отлично!Спасибо указание вероятного места проблемы!
Спасибо! Буду копать в этом направлении.Отлично!
Теперь вам осталось только подцепить к ESP8266 крипточип ATECC508A, который стоит 80 центов и уже поддерживается нашей прошивкой - и защищенное решение готово. Никто не сможет увести ваши SSL ключи.