Получение ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY в Chrome с помощью azure-iothub SDK

У меня есть простой класс javascript, который создает / удаляет устройства внутри Azure IoT Hub, используя azure-iothub Модуль Node.js.

class AzureManager {
    constructor(options) {
      const { connectionString } = options;
      this.registry = iothub.Registry.fromConnectionString(connectionString);
    }

   /**
    * Gets some stats about the Iot Hub selected
    * @returns {Object} an object with the following properties:
    * totalDeviceCount, enabledDeviceCount, disabledDeviceCount
    */
   getStats() {
      return new Promise((resolve, reject) => {
          this.registry.getRegistryStatistics((err, stats, res) => {
              if (err) {
                  return reject(err);
              }

              return resolve(stats);
          });
      });
   }
}

Я разработал тест Jest для этого класса, и когда я его выполняю, все тесты проходят без проблем. Когда я выполняю код внутри Chrome, я получаю следующую ошибку.

request.js: 150 ВАРИАНТОВ https://pysensors.azure-devices.net/statistics/devices?api-version=2018-06-30 net :: ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY

Я не знаю, нужно ли мне что-то настраивать, чтобы оно работало во всех последних версиях браузеров. Я нашел это сообщение на форуме (чем-то похоже на это сообщение в блоге), в котором говорится о проблеме набора шифров на стороне сервера и о необходимости заставить клиента использовать HTTP1 / 1, но поскольку я использую SDK, Я не могу контролировать, как выполняется запрос. Спасибо

РЕДАКТИРОВАТЬ: только что обнаружил, что модуль, который я использую, предназначен для использования только на стороне сервера. Используя Firefox, у меня нет проблемы с SPDY, но в любом случае у меня возникают проблемы с CORS, поскольку Azure не поддерживает ее. Я где-то читал, что это в их дорожной карте, но не в приоритете.


person Chris    schedule 22.11.2018    source источник


Ответы (1)


Официальный ответ Microsoft:

Это ошибка на стороне службы IoTHub. Сервис IoTHub пока не поддерживает протокол HTTP / 2, но из-за ошибки мы возвращаем HTTP / 2 в качестве поддерживаемого протокола в расширении ALPN во время первоначального рукопожатия. Мы собираемся исправить эту ошибку в ближайшее время, но до тех пор вы можете настроить свой клиент так, чтобы он всегда использовал протокол HTTP / 1, который поддерживается и работает хорошо.

Проголосуйте за эту функцию на канале обратной связи по Azure IoT, чтобы мы могли определить ее приоритетность. Спасибо!

Поддержка HTTP 2.0

https://feedback.azure.com/forums/321918-azure-iot/suggestions/9958737-http-2-0-support

Подробности: https://social.msdn.microsoft.com/Forums/azure/en-US/0cf59124-f8f0-4fb2-ba20-5666894341cb/errspdyinadequatetransportsecurity-error-on-rest-api-call-in-chrome?forum=azureiothub

person Chris    schedule 22.11.2018