Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Apache Error: AH02572: Failed to configure at least one certificate subject alternative name Linux / DevOps

Apache Error AH02572: Failed to configure certificate SAN — Решение

Обновлено: 18.08.2026  ·  Официальная база знаний

Служба Apache аварийно завершает запуск при включении SSL-модуля или загрузке виртуального хоста. В системном журнале error.log регистрируется критический отказ парсинга X.509 сертификата: [ssl:emerg] [pid 1234:tid 5678] AH02572: Failed to configure at least one certificate subject alternative name.

Причина отказаСостояние сертификатаВлияние на модуль mod_ssl
Повреждение структуры SANНекорректный ASN.1 синтаксис в блоке расширенийКрах парсера OpenSSL при инициализации контекста
Пустое поле SANРасширение объявлено, но не содержит DNS-записейНевозможно зарегистрировать виртуальный хост в SNI таблице
Несоответствие типов данныхIP-адрес записан как DNS:192.168.1.1 вместо IP:192.168.1.1Отказ валидации структуры сертификата
  • Команда systemctl start apache2 возвращает Job failed with result 'exit-code'.
  • Веб-сервер полностью неработоспособен до удаления поврежденного SSL-сертификата.
  1. Проверьте структуру проблемного сертификата с помощью OpenSSL:
    openssl x509 -in /etc/ssl/certs/broken_site.crt -noout -text
  2. Обратите особое внимание на блок X509v3 Subject Alternative Name. Если команда OpenSSL выдает ошибку парсинга ASN.1 или блок пуст, сертификат поврежден.
  3. Перевыпустите сертификат с корректно оформленными расширениями SAN. Пример корректного конфига san.cnf:
    [req]
    distinguished_name = req_distinguished_name
    req_extensions = v3_req
    prompt = no
    
    [req_distinguished_name]
    CN = example.com
    
    [v3_req]
    keyUsage = keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1 = example.com
    DNS.2 = www.example.com
    IP.1 = 192.168.1.100
  4. Сгенерируйте новый запрос и сертификат:
    openssl req -new -newkey rsa:2048 -nodes -keyout site.key -out site.csr -config san.cnf
    openssl x509 -req -in site.csr -signkey site.key -out site.crt -days 365 -extfile san.cnf -extensions v3_req
  5. Если используется Let's Encrypt / Certbot, выполните принудительный перевыпуск поврежденного сертификата:
    sudo certbot certonly --force-renewal --apache -d example.com -d www.example.com
  6. Проверьте конфигурацию и перезапустите службу: sudo apache2ctl configtest && sudo systemctl restart apache2.
DNS vs IP в SAN: Распространенная ошибка при ручной генерации SSL-сертификатов — указание IP-адреса в секции DNS: (например, DNS.1 = 127.0.0.1). Для IP-адресов стандарт строго требует префикса IP (например, IP.1 = 127.0.0.1).
Практический опыт инженера: Если вы автоматизируете выпуск сертификатов через Ansible/Terraform, всегда валидируйте сгенерированный `.crt` файл командой `openssl x509 -in {{ cert_path }} -noout` перед отправкой команды reload в Apache.

Частые вопросы (FAQ)

Почему Apache требует обязательного наличия SAN?

В современных версиях Apache и библиотеках OpenSSL 1.1.1+ подсистема mod_ssl использует записи Subject Alternative Name для быстрого построения внутренней хэш-таблицы виртуальных хостов SNI.

Что делать, если файл сертификата оказался обрезан или пуст?

Проверьте размер файла: если он 0 байт, восстановите его из резервной копии или перевыпустите через Certbot.

Как временно запустить Apache, если сертификат сломан?

Закомментируйте проблемный блок <VirtualHost *:443> или временно отключите SSL сайт через sudo a2dissite site-ssl.conf.

Может ли несовместимость версий OpenSSL вызывать AH02572?

Да, если сертификат был выпущен с нестандартными расширениями, которые не поддерживаются установленной системной библиотекой libssl.