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

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

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Apache Error: AH02181: Bad Certificate chain: certificate signature algorithm disabled Linux / DevOps

Apache Error AH02181: Bad Certificate chain signature algorithm disabled — Фикс

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

Веб-сервер 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 / ECDSA256+ bit digestРекомендованный современный криптографический стандарт
  • Служба apache2 / httpd не может запуститься из-за блокировки устаревших алгоритмов шифрования библиотекой OpenSSL.
  • Сбой происходит после обновления операционной системы или переноса старых SSL-сертификатов.
  1. Проверьте алгоритм цифровой подписи всех сертификатов в цепочке (включая промежуточные 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"
  2. Если в выводе присутствует sha1WithRSAEncryption или md5WithRSA, сертификат устарел и заблокирован системной политикой безопасности.
  3. Решение 1 (Правильное): Перевыпустите SSL-сертификат и промежуточную цепочку с использованием современного алгоритма SHA-256 (или выше):
    # Пример генерации современного CSR:
    openssl req -new -newkey rsa:2048 -nodes -sha256 -keyout domain.key -out domain.csr
  4. Обновите промежуточный бандл удостоверяющего центра (Intermediate CA Bundle) до актуальной версии от вашего SSL-провайдера.
  5. Решение 2 (Временный Workaround): Если перевыпуск невозможен немедленно, временно понизьте уровень криптографической безопасности OpenSSL в файле /etc/ssl/openssl.cnf:
    # В начале openssl.cnf установите:
    [system_default_sect]
    CipherString = DEFAULT@SECLEVEL=1
  6. Проверьте конфигурацию и перезапустите службу: sudo apache2ctl configtest && sudo systemctl restart apache2.
Криптографическая безопасность OpenSSL SECLEVEL: Начиная с OpenSSL 1.1.1, в Linux-дистрибутивах по умолчанию включен уровень безопасности SECLEVEL=2, который полностью запрещает использование сертификатов с подписью SHA-1 и RSA ключей короче 2048 бит.
Практический опыт инженера: Часто в ошибке виноват не сам сертификат домена, а старый промежуточный сертификат `SSLCertificateChainFile`, скопированный со старого сервера. Всегда скачивайте свежий Intermediate CA Bundle у регистратора.

Частые вопросы (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.