関連記事。
- Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(グループSAS)
- Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(個別X.509)
- Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(個別SAS)
- Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(グループX.509)
- Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(グループX.509 その2)
これの続き。
デバイスから送信する証明書とAzure IoT CentralのグループX.509に登録した証明書が、どういう組み合わせだと認証通るのかを確認しました。
X.509認証通る組み合わせ
総当たりで試した結果がこちら。
デバイスから送信する証明書 | Azure IoT CentralのグループX.509に登録する証明書 | 通信結果 |
---|---|---|
デバイス | 中間CA | Good |
デバイス | 中間CA+ルートCA | Good |
デバイス | ルートCA | Error |
デバイス+中間CA | ルートCA | Good |
つまり、デバイスから送信する証明書のSignerがAzure IoT Centralに登録されていればOKでした。
デバイス - ルートCAでErrorなのは、デバイス証明書のSingerである中間CAの証明書がAzure IoT Centralに無いからです。
X.509認証エラー
備忘として、X.509認証エラー時のログを貼っておきます。
1970/1/1 00:00:11 [INFO] WiFi connected, IP address: 192.168.1.108 1970/1/1 00:00:11 [INFO] Setting time using SNTP .. 2022/10/20 11:53:01 [INFO] Time initialized! 2022/10/20 11:53:01 [INFO] Azure IoT client initialized (state=2) 2022/10/20 11:53:01 [INFO] MQTT client using X509 Certificate authentication 2022/10/20 11:53:01 [INFO] MQTT client target uri set to 'mqtts://global.azure-devices-provisioning.net' 2022/10/20 11:53:01 [INFO] MQTT client connecting. 2022/10/20 11:53:09 [INFO] MQTT client connected (session_present=0). 2022/10/20 11:53:09 [INFO] MQTT client subscribing to '$dps/registrations/res/#' 2022/10/20 11:53:09 [INFO] MQTT topic subscribed (message id=46498). 2022/10/20 11:53:09 [INFO] MQTT client publishing to '$dps/registrations/PUT/iotdps-register/?$rid=1' 2022/10/20 11:53:09 [INFO] MQTT message received. 2022/10/20 11:53:09 [ERROR] Device provisisioning failed. E (20454) MQTT_CLIENT: mqtt_message_receive: transport_read() error: errno=128 2022/10/20 11:53:09 [ERROR] MQTT client in ERROR state. 2022/10/20 11:53:09 [ERROR] esp_tls_stack_err=0; esp_tls_cert_verify_flags=0;esp_transport_sock_errno=0;error_type=1;connect_return_code=0 2022/10/20 11:53:09 [ERROR] connect_return_code=MQTT_CONNECTION_ACCEPTED E (20455) MQTT_CLIENT: mqtt_process_receive: mqtt_message_receive() returned -1 2022/10/20 11:53:09 [INFO] MQTT client disconnected. 2022/10/20 11:53:24 [INFO] MQTT client connecting.