Траблшутинг ошибок mod_ssl в Apache: проверка валидности цепочек сертификатов
- Браузеры или мобильные клиенты выдают предупреждение:
SEC_ERROR_UNKNOWN_ISSUERилиSSL Certificate problem: unable to get local issuer certificate. - В
error.logApache появляется ошибка:AH02570: Failed to configure CA certificate chain!. - Служба Apache не может запуститься:
SSL Library Error: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch.
1. Проверка соответствия приватного ключа и сертификата
Убедитесь, что md5-хеши модуля публичного ключа и сертификата идентичны:
openssl x509 -noout -modulus -in /etc/ssl/certs/site.crt | openssl md5
openssl rsa -noout -modulus -in /etc/ssl/private/site.key | openssl md52. Корректная настройка цепочки SSL в Apache 2.4.8+
В современных версиях Apache 2.4.8+ директива SSLCertificateChainFile устарела. Промежуточные сертификаты (CA Intermediate) объединяются в единый файл fullchain:
# Склейка сертификата сайта и промежуточных CA
cat site.crt intermediate.crt root.crt > /etc/ssl/certs/site_fullchain.crtВ конфигурации VirtualHost (порт 443):
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
# Файл, содержащий сертификат сервера И цепочку CA:
SSLCertificateFile /etc/ssl/certs/site_fullchain.crt
SSLCertificateKeyFile /etc/ssl/private/site.key
# Только современные протоколы
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
</VirtualHost>3. Проверка цепочки сертификатов онлайн через OpenSSL s_client
openssl s_client -connect example.com:443 -servername example.com < /dev/null | grep -A 5 "Certificate chain"4. Валидация и перезапуск
apachectl configtest && systemctl restart apache2 Частые вопросы (FAQ)
Почему сайт открывается на десктопе, но выдает ошибку SSL на смартфонах?
Десктопные браузеры часто используют AIA Fetching (автоматически скачивают недостающие промежуточные сертификаты из сети) или берут их из локального кэша. Мобильные клиенты этого не делают и требуют отдачи полной цепочки (fullchain) от веб-сервера.
Что делать, если ключ защищен паролем (Passphrase)?
Снимите защиту паролем с ключа, чтобы Apache мог стартовать без ручного ввода пароля: openssl rsa -in protected.key -out unprotected.key.