Как проверить имя хоста iothub (Azure SDK C) - PullRequest
0 голосов
/ 09 апреля 2019

Похоже, что имя хоста сертификата iothub не проверяется при подключении к нему.Итак, я хочу убедиться, что мы подключены к концентратору, к которому подключаемся.Вопрос в том, может ли это быть сделано автоматически с помощью SDK?Есть ли примеры, как это сделать?Или, если нет, как я могу интегрировать проверку имени хоста библиотеки openssl?

В SDK есть следующая функция:

x509Certificate_getSubjectName()

, но из-за скимминга sdk она используется не очень часто.другой, чем в модульных тестах.

Я бы хотел включить проверку имени хоста в Azure SDK (C), аналогично тому, как это делается с помощью библиотеки ssl, например:

  ...
  SSL_set_hostflags(ssl, X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS);
  if (!SSL_set1_host(ssl, "www.example.com")) {
    /* handle error */
  }
  /* Enable peer verification (with a non-null callback if desired) */
  SSL_set_verify(ssl, SSL_VERIFY_PEER, NULL);
  ...
/*
 * Establish SSL connection, hostname should be checked
 * automatically test with a hostname that should not match,
 * the connection will fail (unless you specify a callback
 * that returns despite the verification failure.  In that
 * case SSL_get_verify_status() can expose the problem after
 * connection completion.
 */

1 Ответ

0 голосов
/ 17 апреля 2019

Корневой сертификат на устройстве

При установке безопасного соединения TLS с концентратором IoT устройство IoT аутентифицирует концентратор IoT, используя корневой сертификат, который является частью SDK устройства.Для SDK клиента C сертификат находится в папке "\ c \ certs" в корневом каталоге хранилища.Хотя эти корневые сертификаты являются долгоживущими, они все же могут истечь или быть аннулированы.Если на устройстве нет способа обновить сертификат, возможно, устройство не сможет впоследствии подключиться к концентратору IoT (или любой другой облачной службе).Наличие средств для обновления корневого сертификата после развертывания устройства IoT эффективно снижает этот риск.

Используемые сегодня сертификаты подписаны DigiCert Baltimore, и вы можете найти их здесь .

Подробнее здесь

...