Где сертификат X509, используемый iot-устройством в кратком руководстве по "автоподготовке симулируемого устройства (python)"?
Вопрос касается "" 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 говорится об изменении определенных параметров. Я получаю следующую ошибку при запуске кода 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!
Я не смог найти место, куда нужно скопировать сертификаты устройства. Может быть, я неправильно понимаю. Помогите мне это исправить.
Спасибо, Сриджу
1 ответ
Вы использовали Visual Studio для создания проекта, как они упоминали на предыдущем шаге? Если это так, VS должен подключить это для вас, чтобы вам не приходилось копировать сертификат где-либо на вашей стороне, просто используйте сертификат для настройки устройства на стороне AzIotHub.
Чтобы выяснить, почему этого не происходит, можете ли вы включить или связать свой встроенный provisioning_device_client_sample.py
файл? Вероятно, он показывает или указывает, гдеX509SecurityClient
создается экземпляр класса, что приведет к X509
объект, имеющий атрибут (self._cert_file
), который покажет путь к файлу. Также было бы полезно, если бы вы могли запустить это в среде IDE Python, чтобы мы могли загружать вещи на консоли.
Если это неудобно, я мог бы собрать SDK/ образец и запустить его сам, но я давно не открывал Visual Studio на своей виртуальной машине и, вероятно, мне придется пройти через некоторые лицензионные фанданго. (Я в основном использую SDK для устройств и служб IOTHub, новые версии которых не нужно собирать, или REST api для областей, где SDK ломаются.) Пройдет немного времени, прежде чем у меня появится свободное время для который.