#Что означает сообщение
AH01909
Apache AH01909 сообщает, что имя в сертификате не совпадает с ожидаемым ServerName для TLS-виртуального хоста. Сначала проверьте конкретный VirtualHost.
#Как отличить причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Домен | Сравните момент появления признака «Домен» с тем, когда ранее работала нужная функция. Важно сопоставить проверку с исходным симптомом, а не с догадкой. | Исправляйте только подтверждённый фактор «Домен», сохраняя прежние настройки. Для проверки результата повторите только прежнее действие. |
| ServerName | Сравните момент появления признака «ServerName» с тем, когда ранее работала нужная функция. Учитывайте версию Apache и условия сбоя. | Исправляйте только подтверждённый фактор «ServerName», сохраняя прежние настройки. Изменения вносите по одному, с возможностью возврата. |
| Сертификат | Сверьте точное имя, действующий отпечаток и источник доверия: несоответствие сертификата или подписи должно подтверждаться журналом, а не предположением. Учитывайте версию Apache и условия сбоя. | Для случая «Apache: AH01909 — сертификат не соответствует ServerName» обновите сертификат, цепочку доверия или подписанный компонент только через официального владельца; не заменяйте исправление отключением проверки безопасности. Для проверки результата повторите только прежнее действие. |
| SNI | Сравните момент появления признака «SNI» с тем, когда ранее работала нужная функция. Учитывайте версию Apache и условия сбоя. | Исправляйте только подтверждённый фактор «SNI», сохраняя прежние настройки. Изменения вносите по одному, с возможностью возврата. |
#Пошаговое решение
- Зафиксируйте ошибку и проверьте условияПо SSH выполните
sudo apachectl -Sи найдите виртуальный хост HTTPS, который сообщаетAH01909, затем сравните имяServerName/ServerAliasс именами в сертификате. Предупреждение означает, что предоставленный сертификат не покрывает конфигурационное имя; не игнорируйте его, если клиенты получают ошибку TLS. - Выполните основную проверку и исправлениеПроверьте сертификат, на который указывает
SSLCertificateFile, черезopenssl x509 -in /реальный/путь/fullchain.pem -noout -subject -ext subjectAltName. В нём должно присутствовать соответствующее DNS-имя; один сертификат дляexample.comне обязательно подходитwww.example.com, если второго имени нет в SAN. - Исключите другие подтверждённые причиныЕсли сертификат неправильный, получите новый для всех необходимых имён у доверенного удостоверяющего центра и настройте его в соответствующем виртуальном хосте. Не переименовывайте ServerName в случайное имя ради исчезновения предупреждения и не отключайте SNI: это нарушит правильную выдачу сертификатов.
- Проверьте, действительно ли проблема решенаСохраните конфигурацию, выполните
sudo apachectl configtestи согласованныйreloadApache. Проверьте результат с компьютера черезopenssl s_client -connect домен:443 -servername домени в браузере; убедитесь, что сертификат выбран по нужному имени и AH01909 исчез.
#Что важно перед исправлением
Не отключайте проверку TLS и не подменяйте сертификат соседнего домена. Перед перезагрузкой Apache сохраните действующий конфиг.