Новая цепочка TLS после Node.js 26.8.0: проверка корневых сертификатов NSS. Обратимый тест, матрица наблюдений, контрольная ветка, критерии остановки и минимальный пакет для support без рабочих секретов.
Факт и граница вывода
Первичный источник фиксирует ровно одно изменение: релиз 26.8.0 обновляет встроенный набор корневых сертификатов до NSS 3.126. Он не доказывает, что симптом есть у всех, что переход на Current ветку разрешён политикой проекта или что один видимый результат выявляет причину. Отдельная проблема здесь: HTTPS-клиент меняет результат проверки цепочки после обновления runtime, хотя код и адрес сервиса не менялись. До теста запишите effective runtime, канал поддержки и ожидаемую границу.
Минимальный обратимый стенд
Используйте только изолированный fixture: тестовый HTTPS endpoint с известной полной цепочкой и отдельный заведомо недоверенный endpoint без рабочих токенов. Не подключайте боевую базу, реальные адреса, ключи, cookies, полные логи или личные файлы. Сначала получите baseline, затем измените один фактор, повторите сценарий и верните исходное состояние. Так A→B→A2 отделит эффект версии от кэша, порядка событий и случайности.
Поля наблюдения и control
На каждом прогоне заполняйте одну строку матрицы: runtime × CA source × chain issuer × verify code × NODE_EXTRA_CA_CERTS state. Не добавляйте поля «похоже на исправление»: нужны наблюдаемые классы, счётчики, hashes и коды ошибок. Контрольная ветка: повтор с системным доверенным хранилищем и с явно заданным тестовым CA в чистом процессе. Если control даёт тот же неожиданный результат, влияние изменения Node.js не доказано. Расхождение A и A2 означает, что стенд загрязнён и вывод нужно отложить.
Дерево решения по результату
Применяйте решение, записанное до прогона: разница следует только за встроенным CA — граница trust store; остаётся с явным CA — проверяем цепочку сервера; исчезает при возврате runtime — регрессия совместимости. Не смешивайте статусы «API документирован», «бинарник имеет нужную версию», «тест прошёл» и «миграция разрешена». Это разные границы. Один проход не превращайте в заключение о производительности, безопасности или совместимости всего проекта.
Красные флаги и stop-line
Жёсткий критерий остановки для этой темы: не отключать проверку сертификата и не добавлять неизвестный корень ради зелёного запроса. Также остановитесь, если тест неожиданно обращается в сеть, требует повышенных прав, меняет данные за пределами temp каталога, не возвращает A2 к baseline или зависит без timeout. Неизвестный результат не нужно заменять удобным объяснением или повторять на рабочей среде.
Минимальный пакет для support
Для эскалации достаточно: версия Node.js, код verify error, subject/issuer без приватного ключа и источник CA. Добавьте точный канал Node.js, время теста, ожидаемый класс и фактический класс, а также прошёл ли A→B→A2. Не прикладывайте env, токены, ключи, полные пути с именем пользователя, содержимое рабочей базы или сырые сетевые данные. Цель пакета — доказать одну нарушенную границу и один следующий безопасный тест.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, даты и ссылки перепроверены. Реальные пользовательские данные не использовались.
Источники и проверка
- Node.js 26.8 release notes проверено 2026-08-29
- Node.js 26.8 API documentation проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.