Apache Error AH02572: Failed to configure certificate SAN — Решение
Служба 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-сертификата.
- Проверьте структуру проблемного сертификата с помощью OpenSSL:
openssl x509 -in /etc/ssl/certs/broken_site.crt -noout -text - Обратите особое внимание на блок
X509v3 Subject Alternative Name. Если команда OpenSSL выдает ошибку парсинга ASN.1 или блок пуст, сертификат поврежден. - Перевыпустите сертификат с корректно оформленными расширениями 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 - Сгенерируйте новый запрос и сертификат:
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 - Если используется Let's Encrypt / Certbot, выполните принудительный перевыпуск поврежденного сертификата:
sudo certbot certonly --force-renewal --apache -d example.com -d www.example.com - Проверьте конфигурацию и перезапустите службу:
sudo apache2ctl configtest && sudo systemctl restart apache2.
DNS: (например, DNS.1 = 127.0.0.1). Для IP-адресов стандарт строго требует префикса IP (например, IP.1 = 127.0.0.1).Частые вопросы (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.