Apache Error AH02181: Bad Certificate chain signature algorithm disabled — Фикс
Веб-сервер Apache аварийно завершает старт с ошибкой модуля mod_ssl. В системном журнале error.log фиксируется отказ загрузки цепочки SSL-сертификатов: [ssl:emerg] [pid 1234:tid 5678] AH02181: Bad Certificate chain: certificate signature algorithm disabled или SSL Library Error: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak.
| Алгоритм подписи | Длина ключа / Хэш | Статус в современных ОС (Ubuntu 20+, RHEL 8+, Debian 11+) |
|---|---|---|
SHA-1 (sha1WithRSAEncryption) | 160-bit digest | Заблокирован на уровне системных политик OpenSSL (SECLEVEL=2) |
MD5 (md5WithRSAEncryption) | 128-bit digest | Категорически запрещен криптографическими стандартами |
SHA-256 / SHA-384 / ECDSA | 256+ bit digest | Рекомендованный современный криптографический стандарт |
- Служба
apache2/httpdне может запуститься из-за блокировки устаревших алгоритмов шифрования библиотекой OpenSSL. - Сбой происходит после обновления операционной системы или переноса старых SSL-сертификатов.
- Проверьте алгоритм цифровой подписи всех сертификатов в цепочке (включая промежуточные CA):
openssl x509 -in /etc/ssl/certs/site.crt -noout -text | grep "Signature Algorithm" openssl x509 -in /etc/ssl/certs/chain.crt -noout -text | grep "Signature Algorithm" - Если в выводе присутствует
sha1WithRSAEncryptionилиmd5WithRSA, сертификат устарел и заблокирован системной политикой безопасности. - Решение 1 (Правильное): Перевыпустите SSL-сертификат и промежуточную цепочку с использованием современного алгоритма SHA-256 (или выше):
# Пример генерации современного CSR: openssl req -new -newkey rsa:2048 -nodes -sha256 -keyout domain.key -out domain.csr - Обновите промежуточный бандл удостоверяющего центра (Intermediate CA Bundle) до актуальной версии от вашего SSL-провайдера.
- Решение 2 (Временный Workaround): Если перевыпуск невозможен немедленно, временно понизьте уровень криптографической безопасности OpenSSL в файле
/etc/ssl/openssl.cnf:# В начале openssl.cnf установите: [system_default_sect] CipherString = DEFAULT@SECLEVEL=1 - Проверьте конфигурацию и перезапустите службу:
sudo apache2ctl configtest && sudo systemctl restart apache2.
SECLEVEL=2, который полностью запрещает использование сертификатов с подписью SHA-1 и RSA ключей короче 2048 бит.Частые вопросы (FAQ)
Почему старый сертификат перестал работать после обновления Ubuntu/Debian?
Потому что новые версии дистрибутивов включают обновленные библиотеки OpenSSL с жесткими политиками Crypto-Policies, блокирующими уязвимые алгоритмы подписи (SHA-1).
Что означает ошибка 'ca md too weak'?
Эта ошибка генерируется OpenSSL, когда хэш-функция подписи (Message Digest) одного из сертификатов в цепочке CA признана криптографически взломанной и небезопасной.
Какая минимальная длина RSA ключа допускается сегодня?
Минимальный допустимый стандарт составляет RSA 2048 бит. Рекомендуется использовать RSA 4096 бит или алгоритмы на эллиптических кривых ECDSA (P-256 / P-384).
Как проверить всю цепочку сертификатов сайта удаленно?
Используйте OpenSSL: openssl s_client -connect yourdomain.com:443 -showcerts.