Skip to content
EN

SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION

Коротко:

SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION — cert содержит X.509 extension, помеченный critical=TRUE, но Firefox не распознаёт этот OID. По стандарту RFC 5280 клиент ОБЯЗАН reject cert с unknown critical extensions. Fix: перевыпустить cert без exotic extensions, или убрать critical flag.

Ниже: причины, исправление, FAQ.

Проверить SSL своего сайта →

Причины ошибки

  • Private CA выпустил cert с custom OID critical=TRUE
  • Old enterprise CA с legacy extensions (ISO, country-specific)
  • Smart-card / qualified cert extensions в wrong context
  • Misconfigured OpenSSL config (openssl.cnf с exotic extensions)
  • EV cert с policy extension не в standard Firefox trust

Пошаговое исправление

  1. Перевыпустите через mainstream CA (Let's Encrypt, Sectigo)
  2. В OpenSSL config: убрать custom extensions или critical = FALSE
  3. openssl x509 -in cert.pem -text | grep -A1 "critical" — найти критические
  4. Если enterprise: pin cert через NSS trust manually
  5. Enterno SSL — покажет cert extensions полностью

Проверить SSL-сертификат →

Смежные SSL-ошибки

TL;DR: Что такое ошибка SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION?

Ошибка SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION в браузере Firefox возникает, когда сертификат SSL/TLS содержит неизвестное или неподдерживаемое расширение, необходимое для безопасного соединения. Это может происходить из-за неверной конфигурации сервера или устаревших сертификатов. Рекомендуется проверить конфигурацию SSL с помощью команды openssl s_client -connect yourdomain.com:443, чтобы выявить проблемы с сертификатом.

Причины возникновения ошибки SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION

Ошибка SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION может быть вызвана несколькими причинами:

  • Неподдерживаемые расширения: Если сертификат использует расширения, которые не поддерживаются браузером, это может привести к возникновению ошибки.
  • Ошибки в конфигурации сервера: Неверные настройки на сервере, например, использование устаревших протоколов или алгоритмов, могут вызвать проблемы с совместимостью.
  • Устаревшие сертификаты: Если сертификат был выдан с использованием устаревших стандартов, это также может привести к ошибке.

Для диагностики проблемы можно использовать инструменты, такие как SSL Labs, которые помогут выявить ошибки в конфигурации SSL вашего сайта.

Как исправить ошибку SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION

Для устранения ошибки SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION следует выполнить несколько шагов:

  1. Проверка сертификата: Используйте команду openssl s_client -connect yourdomain.com:443, чтобы получить подробную информацию о сертификате и его расширениях.
  2. Обновление сертификата: Если вы обнаружите, что ваш сертификат использует неподдерживаемые расширения, обратитесь к вашему поставщику сертификатов для получения обновленной версии.
  3. Настройка сервера: Убедитесь, что настройки вашего веб-сервера (например, Apache или Nginx) соответствуют современным стандартам. Это может включать отключение устаревших протоколов и алгоритмов шифрования.

Также полезно использовать testssl.sh для проверки поддерживаемых алгоритмов и настроек на вашем сервере.

Практический пример: проверка и обновление сертификата

Рассмотрим сценарий, когда вы столкнулись с ошибкой SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION на вашем сайте. Для начала выполните проверку сертификата с помощью команды:

openssl s_client -connect yourdomain.com:443

Если вы видите вывод, содержащий unknown critical extension, это указывает на наличие проблемы. Далее проверьте конфигурацию SSL вашего сервера. Например, для Nginx проверьте файл конфигурации:

server {
    listen 443 ssl;
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
}

Убедитесь, что настройки соответствуют лучшим практикам. После внесения изменений перезапустите сервер, используя команду:

sudo systemctl restart nginx

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

TL;DR: Что такое ошибка SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION?

Ошибка SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION в браузере Firefox возникает, когда сертификат SSL/TLS содержит критическое расширение, которое не поддерживается текущей версией браузера. Это может означать, что сертификат был создан с использованием устаревших или нестандартных алгоритмов, что препятствует корректной проверке цепочки доверия.

Анализ ошибки SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION

При работе с сертификатами SSL/TLS важно понимать, что они могут содержать различные расширения, которые определяют их поведение и совместимость с браузерами. Ошибка SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION возникает, когда браузер сталкивается с критическим расширением, не поддерживаемым его версией. В большинстве случаев это связано с тем, что сертификат был выдан с использованием нестандартных или устаревших параметров.

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

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

Проверка сертификата с помощью OpenSSL

Для диагностики проблемы можно использовать утилиту OpenSSL. С помощью следующей команды можно проверить сертификат на наличие критических расширений:

openssl x509 -in /path/to/certificate.crt -text -noout

В результате выполнения команды вы получите детализированный вывод о сертификате, включая все его расширения. Обратите внимание на секцию Extensions, где будут перечислены все расширения, установленные в сертификате. Если какое-либо из них помечено как critical, это может быть причиной возникновения ошибки в Firefox.

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

Обновление сертификата

Если вы решили обновить сертификат, рекомендуется обратиться к вашему поставщику SSL. Убедитесь, что они поддерживают современные стандарты и не используют устаревшие расширения. При создании нового сертификата обратите внимание на параметры, которые вы выбираете. Например, используйте стандартные алгоритмы шифрования и избегайте нестандартных расширений, которые могут вызвать проблемы в будущем.

Кроме того, важно следить за обновлениями браузеров, так как они могут добавлять поддержку новых расширений или изменять подход к обработке существующих. Регулярное обновление как серверного ПО, так и клиентских браузеров поможет избежать многих проблем с совместимостью.

В заключение, ошибка SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION является результатом несовместимости между сертификатом и браузером. Понимание структуры сертификатов и использование современных стандартов поможет минимизировать риск возникновения подобных ошибок в будущем.

СертификатСрок, издатель, домены (SAN)
ЦепочкаПроверка промежуточных и корневых CA
TLS-протоколВерсия TLS и набор шифров
УязвимостиHeartbleed, POODLE, слабые шифры

Почему нам доверяют

TLS 1.3
поддержка
Полная
цепочка CA
<2с
результат
30/14/7
дней до истечения

Как это работает

1

Введите домен

2

Проверка цепочки TLS

3

Дата истечения и уязвимости

Что проверяет SSL-тест?

SSL/TLS — протокол шифрования, который защищает данные между браузером и сервером. Наш инструмент анализирует сертификат, цепочку доверия, версию TLS и известныеуязвимости.

Детали сертификата

Издатель, срок действия, алгоритм подписи, покрываемые домены (SAN) и тип валидации (DV/OV/EV).

Цепочка доверия

Проверка полной цепочки: от конечного сертификата через промежуточные до корневого CA.

Анализ TLS

Версия протокола (TLS 1.2/1.3), набор шифров, поддержка Perfect Forward Secrecy (PFS).

Оповещения об истечении

Создайте монитор — получайте уведомления в Telegram и email за 30/14/7 дней до истечения.

DV vs OV vs EV сертификаты

DV (Domain Validation)
  • Подтверждение только владения доменом
  • Выдаётся за минуты автоматически
  • Бесплатно через Let's Encrypt
  • Подходит для большинства сайтов
  • Самый распространённый тип
OV / EV
  • Проверка организации (OV) или расширенная проверка (EV)
  • Выдаётся за 1-5 рабочих дней
  • Стоимость от $50 до $500/год
  • Для финансов, e-commerce, госсайтов
  • Повышает доверие пользователей

Кому это нужно

DevOps

мониторинг SSL-сертификатов

Безопасность

аудит TLS-конфигурации

SEO

HTTPS как фактор ранжирования

E-commerce

доверие покупателей

Частые ошибки

Истёкший сертификатБраузеры блокируют сайт с истёкшим SSL. Настройте автопродление или мониторинг.
Неполная цепочка сертификатовБез промежуточного CA некоторые браузеры и боты не смогут верифицировать сертификат.
Mixed content на HTTPS-сайтеHTTP-ресурсы на HTTPS-странице — замок в браузере пропадает, снижается доверие.
Использование TLS 1.0/1.1Устаревшие версии TLS содержат известные уязвимости. Используйте TLS 1.2+ или 1.3.
Несовпадение домена в сертификатеСертификат должен покрывать все домены сайта, включая www и поддомены.

Лучшие практики

Настройте автопродлениеLet's Encrypt + certbot с cron — сертификат обновляется автоматически каждые 60-90 дней.
Включите HSTSЗаголовок Strict-Transport-Security заставляет браузер всегда использовать HTTPS.
Используйте TLS 1.3TLS 1.3 быстрее (1-RTT handshake) и безопаснее — убраны устаревшие шифры.
Мониторьте срок действияСоздайте монитор на Enterno.io — получайте уведомления задолго до истечения.
Проверяйте цепочку после обновленияПосле обновления сертификата убедитесь, что промежуточные сертификаты установлены.

Получите больше с бесплатным аккаунтом

Мониторинг SSL-сертификатов, история проверок и уведомления за 30 дней до истечения.

Зарегистрироваться (FREE)

Больше по теме

Источники

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

Что значит critical?

RFC 5280: если extension critical — клиент должен уметь его обрабатывать. Иначе reject cert (безопасности ради).

Chrome strict?

Chrome более лоялен к unknown extensions (если non-critical). Critical — reject тоже.

Какие extensions обычно critical?

BasicConstraints, KeyUsage, NameConstraints. Custom Policy extensions часто non-critical.

Debug cert?

https://crt.sh для public cert, или dumpasn1 утилита для binary parsing.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.