Apache Error AH01909: RSA certificate does NOT include ID — Решение
При запуске веб-сервера с модулем mod_ssl в системном логе error.log фиксируется предупреждение о несоответствии имен: [ssl:warn] [pid 1234:tid 5678] AH01909: RSA server certificate: does NOT include ID which matches server name 'web01.example.com'.
| Параметр | Значение в конфигурации | Значение в сертификате (SAN / CN) |
|---|---|---|
Директива ServerName | web01.example.com | example.com, www.example.com |
Директива ServerAlias | api.example.com | Отсутствует в Subject Alternative Name |
| Результат в браузере | Подключение к сайту | Предупреждение NET::ERR_CERT_COMMON_NAME_INVALID |
- Apache сообщает, что доменное имя, указанное в директиве
ServerNameвиртуального хоста, не совпадает ни с одним именем из полейCN(Common Name) илиSAN(Subject Alternative Name) SSL-сертификата. - Браузеры блокируют вход на сайт, помечая соединение как незащищенное.
- Проверьте список доменных имен, для которых фактически выпущен ваш SSL-сертификат:
openssl x509 -in /etc/ssl/certs/site.crt -noout -text | grep -A 1 "Subject Alternative Name" - Откройте конфигурационный файл SSL виртуального хоста (
/etc/apache2/sites-available/site-ssl.conf). - Убедитесь, что директива
ServerNameи псевдонимыServerAliasстрого соответствуют именам из вывода OpenSSL:<VirtualHost *:443> ServerName example.com ServerAlias www.example.com SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem </VirtualHost> - Если вам необходимо обслуживать новое доменное имя, перевыпустите SSL-сертификат с включением нужного поддомена в список SAN:
# Пример для Certbot Let's Encrypt: sudo certbot --apache -d example.com -d www.example.com -d web01.example.com - Проверьте синтаксис конфигурации и примените настройки:
sudo apache2ctl configtest && sudo systemctl reload apache2
Common Name (CN) и сверяют имя хоста исключительно со списком Subject Alternative Name (SAN). Всегда указывайте SAN при генерации CSR и сертификатов.Частые вопросы (FAQ)
Является ли AH01909 фатальной ошибкой?
Нет, это предупреждение уровня [warn]. Apache продолжит работу и отдаст сертификат клиенту, но если домен в адресной строке не совпадет с сертификатом, клиент увидит ошибку в браузере.
Что такое Wildcard сертификат и решает ли он проблему AH01909?
Wildcard сертификат выпускается для маски *.example.com и автоматически покрывает любые поддомены первого уровня (app.example.com, test.example.com), предотвращая подобные ошибки.
Почему AH01909 указывает на дефолтный localhost?
Если в блоке <VirtualHost *:443> не была задана директива ServerName, Apache берет имя хоста сервера из глобальной директивы ServerName или /etc/hosts.
Как проверить соответствие приватного ключа и сертификата?
Сравните их контрольные суммы md5: openssl x509 -noout -modulus -in cert.crt | openssl md5 и openssl rsa -noout -modulus -in key.key | openssl md5.