Статья Создание устройства IoT Edge, которое действует как прозрачный шлюз - предварительный просмотр работает нормально. Ключ к тому, чтобы это работало, - установить правильные сертификаты.
В следующем сценарии и клиент, и граница находятся на одном компьютере.
- Следуйте этому документу, у меня есть следующие файлы сертификатов:
Обратите внимание, что я использовал New-CACertsEdgeDevice myEdgeDevice для создания сертификата устройства.
- Затем выполните следующую команду, чтобы настроить пограничную среду выполнения.
iotedgectl setup --connection-string HostName = jierong-iothub.azure-devices.net; DeviceId = jierong-iotedge-device1; SharedAccessKey = XXXXXXX --edge-hostname localhost --device-ca-cert-file myEdgeDevice- public.pem --device-ca-chain-cert-file myEdgeDevice-all.pem --device-ca-private-key-file myEdgeDevice-private.pem --owner-ca-cert-file RootCA.pem strong >
- Затем запустите iotedgectl start, чтобы запустить среду выполнения, и запустите docker ps, чтобы убедиться, что все в порядке.
- Удалите все установленные сертификаты и установите файл myEdgeDevice.pfx, дважды щелкнув его. После этого вы можете увидеть следующие сертификаты в своем диспетчере сертификатов:
Затем создайте строку подключения устройства, как показано ниже, если вы используете локальный хост, не используйте имя компьютера, как показано ниже:
частная константная строка DeviceConnectionString = "HostName = jierong-iothub.azure-devices.net; DeviceId = jierong-iothub-device; SharedAccessKey = XXXXXXXX; GatewayHostName = localhost";
Изменено приложение, клонированное следующим образом:
git clone https://github.com/Azure-Samples/iot-hub-dotnet-simulated-device-client-app.git
Я могу успешно запустить приложение.
Аналогично для пограничного сервера и клиента на двух разных машинах Win 10, но вы должны сначала установить сертификат, например, написать следующий код:
Если он по-прежнему не работает, проверьте, не возникает ли у вас каких-либо проблем с проверкой сертификации, и вот как это работает:
- Среда выполнения Edge в контейнере докеров отправит left (deivce cerificate) во время рукопожатия TLS.
- клиент (в данном случае машина Win 10) должен будет подтвердить эту сертификацию, чтобы подтвердить ее как доверенную, мне нужно будет посмотреть на эмитента этого сертификата и подняться по цепочке и посмотреть, является ли этот эмитент в доверенном корневом ЦС.
Обратите внимание, что IoT Edge все еще находится в режиме предварительного просмотра, поэтому некоторые вещи не могут быть удалены. Если у вас все еще возникают проблемы, я предлагаю вам создать заявку в службу поддержки для дальнейшего устранения неполадок.
Спасибо, Джи
person
jierong - msft
schedule
31.01.2018
GatewayHostName
в строке подключения? - person Raj   schedule 16.01.2018