Речь ИИ Azure SDK: обновление совместимости со списком аннулирования сертификатов (CRL)

Это важно

Дата действия: 1 июля 2026 г. Действие требуется до этой даты, чтобы избежать нарушения работы служб на платформах Linux и Android.

Функция кэширования списка отзыва сертификатов (CRL) в Речь ИИ Azure версиях пакета SDK до 1.48.2 может привести к сбоям подключения к службе Azure распознавания речи на платформах Linux и Android. Затрагиваются все привязки языка SDK, использующие собственный уровень OpenSSL на этих платформах (C#, C++, Java, Python и Go). Эта проблема вызывается изменениями в отрасли в том, как структурированы CRLs. Действие требуется до 1 июля 2026 г., чтобы избежать нарушения работы службы.

Затронутые платформы: Linux, Android
Затронутые версии пакета SDK: Все версии до версии 1.48.2

Необходимые условия

Перед выполнением действий убедитесь, что эта проблема относится к вам:

  • Платформа: Вы запускаете SDK для речи на Linux или Android.
  • Версия пакета SDK: Вы используете версию до версии 1.48.2. Проверьте версию пакета SDK для распознавания речи в диспетчере зависимостей. Например:
    • Python:pip show azure-cognitiveservices-speech
    • C#/.NET:dotnet list package
    • Java/Maven:mvn dependency:tree | grep speechsdk
    • Перейти:go list -m all | grep speechsdk
  • Проверка списка отзыва сертификатов: Включена проверка списка отзыва сертификатов (по умолчанию в версиях до 1.48.1).

Определите, использует ли ваше приложение только облачные, гибридные (облачные и встроенные) или только встроенные возможности речи, чтобы определить влияние вашего приложения по типу развертывания.

Если применяются все три условия, выполните действия, описанные в разделе "Обязательный".

Определение влияния по типу развертывания

Влияние изменения секционирования CRL зависит от того, подключается ли приложение к конечным точкам облака службы "Речь" Azure. Используйте следующую таблицу, чтобы определить сценарий и необходимые действия.

Тип клиента Влияние Необходимые действия
Внедрено только (не подключение к облаку) Не повлияло Действия не требуются
Гибридная среда (облако с встроенным резервным вариантом) Cloud STT/TTS может дать сбой после продления сертификата См. обязательные действия
Только облако Cloud STT/TTS может дать сбой после продления сертификата См. обязательные действия

Используйте это краткое руководство по принятию решений:

  • Подключается ли ваше приложение к облачным конечным точкам службы Azure Speech (распознавания речи или синтеза речи – STT или TTS)?
    • Нет → Вы используете только встроенную речь. Никаких действий не требуется.
    • Да → Продолжить шаг 2.
  • Ваше приложение также использует внедренную речь в качестве резервного варианта?
    • Да , → у вас есть гибридное развертывание. Облачные функции могут давать сбои после продления сертификата, но встроенная резервная функция продолжает работать. Действие, необходимое для облачных функций.
    • Нет → у вас есть облачное развертывание. Голосовые вызовы могут завершиться ошибкой после продления сертификата без резервного механизма. Необходимое действие.

Развертывания только для встроенных систем

Если ваше приложение использует только встроенное (на устройстве) распознавание или синтез речи и никогда не подключается к облачным конечным точкам службы Azure Speech, это изменение на вас не повлияет. Никаких действий не требуется.

Гибридные развертывания (облако со встроенным резервным вариантом)

Когда приложение находится в сети, оно использует облачную речь к тексту (STT) или преобразование текста в речь (TTS). Эти облачные подключения подвержены проблеме сегментации CRL. Встроенный резервный вариант продолжает работать, если нет сигнала данных, но облачные функции завершаются сбоем, если вы не выполните действия.

Определите, какой сценарий кэширования применяется к вам:

Включено кэширование CRL на диск (по умолчанию)

Пакет SDK сохраняет данные CRL на диск с помощью системного каталога temp ($TMPDIR или $TMP). Устаревшая запись раздела CRL в кэше диска может вызвать постоянные сбои подключения, сохраняющиеся после перезапуска приложения. Чтобы устранить эту проблему:

Кэширование дисков CRL не включено

Если вы используете настраиваемую конфигурацию или $TMPDIR/$TMP переменные среды не заданы, пакет SDK по-прежнему кэширует CRLs в памяти во время работы процесса. Перезапуск приложения очищает кэш в памяти, но проблема повторяется при следующем подключении между регионами или смене сертификатов. Обновите или отключите проверку CRL согласно необходимым действиям.

Подсказка

Гибридные развертывания, которые падают обратно на внедренную речь при автономном режиме, продолжают работать в автономном режиме, но облачные функции не работают до применения исправления.

Развертывания только в облаке

Затронуты все облачные вызовы STT/TTS. Одни и те же два сценария (кэширование дисков CRL включено или не включено), описанные в гибридных развертываниях , применяются к облачным развертываниям.

Предупреждение

В облачных развертываниях нет резервных копий. После обновления сертификата и начала использования секционированных CRL вызовы распознавания и синтеза речи могут закончиться сбоем, если вы не применили исправление. Точное время зависит от того, когда сертификаты TLS региона обновляются, но вы должны принять меры до 1 июля 2026 года, чтобы избежать каких-либо рисков нарушения.

Основные сведения

Центры сертификации (ЦС), включая инфраструктуру открытых ключей Майкрософт (PKI), переходят на секционированные СПС, чтобы соответствовать основным требованиям CA/Browser Forum. Это изменение на уровне всей отрасли, влияющее на все публично доверяемые сертификационные центры.

Ранее каждый издатель сертификата поддерживал один список отзыва сертификатов. При секционированных crls один и тот же издатель может иметь несколько списков crls, каждый из которых охватывает подмножество сертификатов. Это повышает масштабируемость (сокращение размера CRL с 10 МБ+ до ~1 КБ).

Проблема

Пакет SDK Речь ИИ Azure (версии до версии 1.48.2) кэширует crLs на некоторых платформах, используя только имя издателя сертификатов в качестве ключа кэша. При секционированных CRLs это приводит к несоответствию кэша:

  • При подключении к одному региону Azure пакет SDK скачивает и кэширует список сертификатов CRL для сертификата TLS этого региона.
  • При подключении к другому региону (или после смены сертификатов) кэшированный список отзыва сертификатов может не соответствовать секции нового сертификата.
  • OpenSSL отклоняет подключение с ошибкой: X509_V_ERR_DIFFERENT_CRL_SCOPE (код ошибки 44)

Это влияет на вас, если:

  • Вы используете пакет SDK речи в Linux или Android
  • У вас включена проверка списка отзыва сертификатов (это настройка по умолчанию в затронутых версиях)
  • Вы подключаетесь к множеству регионов Azure, OR
  • Сертификат вашего региона поворачивается (это происходит автоматически и может назначить другую секцию)

Это не влияет:

  • развертывания Windows
  • Развертывания iOS или Mac
  • Пакет SDK версии 1.48.2 или более поздней версии

Необходимые действия

Выполните одно из следующих действий до 1 июля 2026 г.

Пакет SDK версии 1.48.2 содержит исправление для правильной обработки секционированных CR-адресов. Пакет Speech SDK версии 1.48.1 и более поздние версии по умолчанию отключают проверку CRL (списка отзыва), что также предотвращает эту проблему, но удаляет дополнительный уровень валидации.

Скачайте последний пакет SDK: Речь ИИ Azure настройка пакета SDK

После обновления проверьте исправление, отслеживая журналы приложений при отсутствии ошибки 44 (X509_V_ERR_DIFFERENT_CRL_SCOPE) во время подключений. При подключении к нескольким регионам Azure проверьте подключения между регионами, чтобы убедиться, что проблема устранена.

Вариант 2. Отключение проверки списка отзыва сертификатов

Если вы не можете обновить немедленно, отключите проверку CRL в текущей версии пакета SDK. Установите свойство OPENSSL_DISABLE_CRL_CHECK на "true" вашего объекта SpeechConfig.

config.SetProperty("OPENSSL_DISABLE_CRL_CHECK", "true");

После установки свойства проверьте исправление, убедившись, что подключения успешно выполнены, а ошибки, связанные с CRL (ошибка 44 или WS_OPEN_ERROR_UNDERLYING_IO_OPEN_FAILED) не отображаются в журналах пакета SDK.

Подсказка

Если вы хотите сохранить проверку списка отзыва сертификатов, но допускаете сбои загрузки, вместо этого установите значение OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE на "true". Это свойство позволяет продолжать соединения, когда невозможно получить СОС, при этом проверка СОС все равно выполняется, если он доступен.

Дополнительные параметры конфигурации см. в разделе "Настройка OpenSSL для Linux".

Риски не принимать меры

Если вы не обновите или не отключите проверку списка отозванных сертификатов до 1 июля 2026 г.:

  • Сбои подключения могут возникать, когда смена сертификата назначает другую секцию CRL или при подключении между регионами
  • Сбои проявляются как WS_OPEN_ERROR_UNDERLYING_IO_OPEN_FAILED ошибки
  • Нет предварительного предупреждения . Точное время зависит от того, когда обновляются сертификаты TLS вашего региона
  • Прерывание службы продолжается до обновления пакета SDK, проверка отзыва сертификатов отключена или кэш CRL очищается.

Как определить, подверглись ли вы воздействию

Симптомы ошибки

Сбои подключения с такими сообщениями, как:

Connection failed (no connection to the remote host). Internal error: 1. 
Error details: Failed with error: WS_OPEN_ERROR_UNDERLYING_IO_OPEN_FAILED

Показатели журнала SDK

Включите ведение журнала SDK для просмотра подробных ошибок TLS. Искать:

SPX_TRACE_ERROR: AZ_LOG_ERROR: tlsio_openssl.c:1655 Error 44 was unexpected
SPX_TRACE_ERROR: AZ_LOG_ERROR: tlsio_openssl.c:691 error:0A000086:SSL routines::certificate verify failed
SPX_TRACE_ERROR: web_socket.cpp:930 WS open operation failed with result=1(WS_OPEN_ERROR_UNDERLYING_IO_OPEN_FAILED)

(Номера строк в сообщениях журнала могут отличаться в зависимости от версии пакета SDK)

Ошибка 44 (X509_V_ERR_DIFFERENT_CRL_SCOPE) — это конкретный показатель несоответствия этой секции CRL.

Подтверждение проблемы

Если вы видите эти ошибки и относитесь к:

  • Запуск в Linux или Android
  • Использование версии ПАКЕТА SDK до версии 1.48.2
  • Подключение к нескольким регионам ИЛИ возникновение сбоев после периода нормальной работы подключений

Скорее всего, вы столкнулись с этой проблемой.

Временное решение. Очистка кэша дисков CRL

Если вы не можете обновиться до крайнего срока или отключить проверку списка отзыва сертификатов, можно сократить время воздействия, отключив дисковый кэш CRL. Это ограничивает проблему только кэшированием в памяти, то есть:

  • Длительность воздействия = время существования процесса
  • Перезапуск приложения очищает кэш и восстанавливает подключение (до следующего межрегионного подключения или события смены).

Отключение кэширования дисков

Удалите или сбросьте переменные окружения TMPDIR перед запуском приложения TMP. Без этих переменных пакет SDK не сохраняет CRLs на диске.

Кроме того, удалите каталог кэша CRL вручную:

  • Расположение по умолчанию: системный временный каталог ($TMPDIR или $TMP)
  • Удаление кэшированных .crl файлов и перезапуск приложения

Замечание

Это временное обходное решение, а не решение. Обновление до пакета SDK 1.48.2 или более поздней версии или отключение проверки списка отзыва сертификатов по-прежнему требуется.

Временная шкала

Дата Event
Сейчас Проверка типа развертывания и версии пакета SDK
Февраль 2026 г. Пакет SDK 1.48.2, выпущенный с исправлением
1 июля 2026 г. Срок: обновление или отключение проверки CRL
После 1 июля 2026 г. Необновлённые развертывания могут столкнуться с ошибками подключения по мере обновления сертификатов.

Часто задаваемые вопросы

Почему это происходит?

Центры сертификации необходимы для реализации секционированных crls для соответствия отраслевым стандартам. Это не является специфическим для Корпорации Майкрософт — все основные центры сертификации вносят это изменение.

Влияет ли это на Windows?

Нет. Windows обрабатывает проверку сертификатов по-разному и не затрагивается.

Я использую только один регион Azure. Я все еще затронут?

Да. Смена сертификатов (которая происходит автоматически) может назначить сертификат региона другому разделу, вызвав тот же сбой.

Что делать, если у меня уже отключена проверка списка отзыва сертификатов?

Вы не пострадали. Никаких действий не требуется, хотя рекомендуется обновить до последней версии пакета SDK для других улучшений и обновлений.

Существует ли угроза безопасности при отключении проверки CRL сертификатов?

Проверка списка отзыва сертификатов обеспечивает дополнительный уровень проверки сертификатов. В большинстве случаев влияние на безопасность от отключения минимально, так как другие механизмы проверки (цепочка сертификатов, срок действия) остаются активными. Обратитесь к группе безопасности, если у вас есть определенные требования к соответствию.

Как включить ведение журнала пакета SDK для диагностики проблемы?

См. документацию по пакету SDK для включения ведения журнала диагностики: ведение журнала пакета SDK службы "Речь".

Я использую только внедренную речь без облачного подключения. Затронуты ли я?

Нет. Эта проблема влияет только на подключения к облачным конечным точкам службы Azure Speech. Если приложение никогда не подключается к облачным службам STT или TTS, это не влияет. Дополнительные сведения см. в разделе "Определение влияния по типу развертывания".

Поддержка

Если у вас есть вопросы или нужна помощь: