Как создать открытый сертификат, закрытый ключ из корневого сертификата? - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть файл сертификата корневого сертификата с сервера Linux.Приложение, которое должно подключиться к этому серверу, говорит мне, что ему нужен файл pem publicCert и файл pem privateKey для взаимодействия с сервером.

Генерирую ли я их из корневого сертификата?Моя мысль состоит в том, что я буду давать openssl путь к корневому сертификату, а затем он выбрасывает publicCert / privateKey, который я хочу.

Я создал сертификаты на сервере, как описано здесь .Теперь мне нужно установить на нисходящем устройстве, как описано здесь .

Для ввода клиентского соединения, которое мне нужно использовать, требуются следующие параметры:

connString: 'HostName=foo'
protocol: MQTT
publicKeyCertificateString: certificateString or path to certificate
privateKeyString: keyString or path to key

new DeviceClient(connString, protocol, publicKeyCertificateString, privateKeyString);
  • Формат сертификата: pem
  • Формат аутентификации: x509

1 Ответ

0 голосов
/ 30 сентября 2018

Требуется, чтобы сертификат корневого ЦС был доступен только в хранилище доверенных сертификатов нижестоящего устройства.То, что вы, похоже, хотите сделать, это взаимная аутентификация.Azure IoT Edge в настоящее время не поддерживает нижестоящие устройства для подключения с использованием клиентских сертификатов (взаимная проверка подлинности).(Пограничное устройство поддерживает только аутентификацию по симметричному ключу, но не поддерживает аутентификацию по сертификату x509).Для публикации сообщений с использованием MQTT вам потребуется сгенерировать токен SAS для нижестоящего устройства и затем использовать его для связи с iot-концентратором (периферийное устройство будет действовать как прозрачный шлюз).

Related: c #Требуется автоматическое предоставление Azure IOT Edge со службой инициализации устройства (DPS) с образцом сертификата x509

...