Где сертификат X509 используется iot-device в кратком руководстве по автоматическому предоставлению имитируемого устройства (python)? - PullRequest
1 голос
/ 26 сентября 2019

Вопрос со ссылкой на "" https://docs.microsoft.com/en-us/azure/iot-dps/quick-create-simulated-device-x509-python"

В разделе 'https://docs.microsoft.com/en-us/azure/iot-dps/quick-create-simulated-device-x509-python#simulate-the-device' говорится об изменении определенных параметров.Я получаю следующую ошибку при запуске кода Python.

$ python provisioning_device_client_sample.py -i 0ne0007F9D9 -s X509 -p http

Python 2.7.12 (default, Nov 12 2018, 14:36:49) 
[GCC 5.4.0 20160609]
Provisioning Device Client for Python
Starting the Provisioning Client Python sample...
    Scope ID=0ne0007F9D9
    Security Device Type X509
    Protocol HTTP

Provisioning API Version: 1.2.12

Press Enter to interrupt...

Register status callback: 
reg_status = CONNECTED
user_context = None

PUT /0ne0007F9D9/registrations/riot-device-cert/register?api-version=2018-09-01-preview HTTP/1.1
UserAgent: prov_device_client/1.0
Accept: application/json
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Host: global.azure-devices-provisioning.net:443
content-length: 39


len: 39
{ "registrationId":"riot-device-cert" }


HTTP Status: 401

date: Thu, 26 Sep 2019 18:48:49 GMT
content-type: application/json; charset=utf-8
transfer-encoding: chunked
x-ms-request-id: 883b82ee-f696-4e68-9aec-61abc1e4a55b
strict-transport-security: max-age=31536000; includeSubDomains

{"errorCode":401002,"trackingId":"883b82ee-f696-4e68-9aec-61abc1e4a55b","message":"CA certificate not found.","timestampUtc":"2019-09-26T18:48:50.364959Z"}

Error: Time:Thu Sep 26 14:48:50 2019 File:/usr/sdk/src/c/provisioning_client/src/prov_device_ll_client.c Func:prov_transport_process_json_reply Line:323 failure retrieving json auth key value
Error: Time:Thu Sep 26 14:48:50 2019 File:/usr/sdk/src/c/provisioning_client/src/prov_transport_http_client.c Func:prov_transport_http_dowork Line:941 Unable to process registration reply.
Error: Time:Thu Sep 26 14:48:50 2019 File:/usr/sdk/src/c/provisioning_client/src/prov_device_ll_client.c Func:on_transport_registration_data Line:572 Failure retrieving data from the provisioning service

Register device callback: 
   register_result = PARSING
   iothub_uri = None
   user_context = None

Device registration failed!

Я не смог найти место, куда мне следует скопировать сертификаты устройства.Может быть, мое понимание неверно.Помогите мне исправить это.

Спасибо, Sreeju

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Заранее спасибо. Как раз вовремя :) и я попробовал "C-версию" (https://docs.microsoft.com/en-us/azure/iot-dps/quick-create-simulated-device-x509) с Visual Studio. Она работала для индивидуальной регистрации с использованием сертификатов X509, которые являются самозаверяющими.

Для версии Python что-то не так с git или инструкциями. Инструкция говорит 'cd azure-iot-sdk-python / c mkdir cmake cd cmake', там нет папки "C" и нет файла cmakefile вкаталог.

С "C-версией" (https://docs.microsoft.com/en-us/azure/iot-dps/quick-create-simulated-device-x509) я попытался с опцией "g" вместо "i" для регистрации в группе. Он создал root-cert и проверку сертификаташаги, пройденные на портале Azure. Он не создал сертификат устройства, хотя, может быть, он создает его внутренне, я не уверен в этом.

То, чего я пытаюсь добиться, - это предоставить несколько имитированных устройств iot, используяСлужба DPS. Скажем, используя «группы регистрации» с типом сертификата «CA_Certificate».

Известны ли вам какие-либо подобные рабочие симуляции, когда я могу загрузить уникальный сертификат устройства (всеиз того же корневого центра сертификации), а затем запустите его, чтобы получить DPS.(В идеале мне бы хотелось, чтобы каждое устройство представлялось в виде док-контейнера, который автоматически инициализируется)

Вы упомянули, что IOTHub Device / Service SDK более удобны для вас, можете ли вы дать ссылку на некоторые примеры кодов, на которыхЯ могу построить свои знания ...

0 голосов
/ 27 сентября 2019

Использовали ли вы Visual Studio для создания проекта, как они упоминали в предыдущем шаге ?Если это так, VS должен подключить это для вас, чтобы вам не пришлось копировать сертификат в любом месте на вашем конце, просто используйте сертификат для настройки устройства на стороне AzIotHub.

Для устранения неполадокпочему этого не происходит, можете ли вы включить или связать свой встроенный файл provisioning_device_client_sample.py?Вероятно, он показывает или указывает, где создается экземпляр класса X509SecurityClient, что приведет к объекту X509, который имеет атрибут (self._cert_file), который будет показывать путь к файлу.Также было бы полезно, если бы вы могли запустить это в Python IDE, чтобы мы могли вывести вещи на консоль.

Если это неудобно, я мог бы собрать SDK / образец и сам выполнить его, ноЯ давно не запускал Visual Studio на своей виртуальной машине, и, вероятно, мне нужно будет пройти через некоторые фанданго лицензирования.(Я в основном использую IOTHub Device & Service SDK, более новые версии которых не нужно создавать, или REST API для областей, где сломаны SDK.) Пройдет немного времени, прежде чем у меня будет свободное время длячто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...