Вопрос или проблема
Шлюз приложения выдает мне ошибку:
‘Состояние сервера’: ‘Общее имя (CN) сертификата на сервере не совпадает с заголовком хоста заявки.’ для обоих серверов.
Но если я пытаюсь получить доступ к экземплярам масштабируемого набора напрямую, сертификат действителен:
https://apitestss000000.mycorp.local/
и
https://apitestss000001.mycorp.local/
выглядят нормально и действительны в браузере
Настройка HTTP установлена на “Выбрать имя хоста из целевого сервера.” Если я установлю ее на “Переопределить с помощью конкретного доменного имени” и введу одно из имен хостов, таких как ‘apitestss000001.mycorp.local’, ошибки для этого хоста нет, но все равно есть ошибка для другого. Похоже, что “Выбрать имя хоста из целевого сервера” выбирает неправильное имя хоста из масштабируемого набора.
Похоже, вы подписали свои сертификаты самостоятельно. Это будет проблематично для всего, что не находится в вашем домене/не использует ваш корпоративный CA и настройку PKI, включая Azure health probes. Вам нужно будет загрузить публичный корневой сертификат в портал Azure или получить сертификаты, подписанные третьей стороной CA, которую доверяют проверки Microsoft.
У меня была такая же проблема, когда я только обновил сертификат на WAG, и когда сертификат истек, я получил эту ошибку. Затем я изучил вопрос и выяснил, что когда необходима обновление сертификата, его нужно обновить как на WAG, так и на веб-серверах. Один и тот же сертификат, обновленный на веб-серверах, решает проблему.
Ответ или решение
Ошибки сопоставления имени хоста бэкенда в Azure Application Gateway
При использовании Azure Application Gateway для управления трафиком и обеспечения доступности веб-приложений могут возникать различные ошибки. Одной из распространенных проблем является ошибка сопоставления имени хоста бэкенда, о которой вы упомянули: "Backend health: The Common Name (CN) of the backend certificate does not match the host header of the probe." Эта проблема часто связана с неправильной конфигурацией SSL-сертификатов, что может привести к сбоям в проверке состояния бэкенд-серверов.
Причины ошибки
-
Несоответствие имени хоста: Ошибка указывает на то, что общее имя (CN) вашего SSL-сертификата, установленного на бэкенд-серверах, не соответствует имени хоста, которое используется в заголовке запроса от дампа проверки (probe) Azure Application Gateway. Это может произойти, если вы используете динамические имена хостов или у вас неправильная настройка конфигурации.
-
Самоподписанные сертификаты: Если вы используете самоподписанные сертификаты или сертификаты, выданные внутренним центром сертификации, они могут быть недоступны для проверки Azure, так как Azure не доверяет вашему частному центру сертификации. Это приводит к сбоям в проверке состояния, поскольку Azure не может проверить достоверность сертификата.
-
Настройки HTTP: Вы отметили, что настройки HTTP были установлены на ‘Pick hostname from backend target’. Если приложение скейл-сет использует несколько экземпляров, возможно, что для этого параметра выбирается неправильное имя хоста, что и вызывает данную проблему.
Решения
-
Проверка сертификатов:
- Убедитесь, что сертификаты на бэкенд-серверах действительны и содержат правильные CN и альтернативные имена (SAN). Если у вас есть несколько серверов, удостоверяйтесь, что для каждого сервера установлен соответствующий сертификат.
- Подключите публичный корневой сертификат вашего центра сертификации в портал Azure, если вы используете самоподписанные сертификаты.
-
Импортируются ли обновления сертификатов:
- Если вы обновили сертификаты на веб-серверах, убедитесь, что эти изменения также отражены в Azure Application Gateway. Все экземпляры бэкенда должны иметь доступный сертификат.
-
Настройка HTTP:
- Если вы используете параметр ‘Pick hostname from backend target’, попробуйте вручную установить фиксированное имя хоста для всех ваших бэкенд-инстансов в настройках HTTP. Выполняя это, вы получите большую предсказуемость в именах хостов, используемых для проверки состояния.
-
Проверка шифрования и протоколов:
- Убедитесь, что все экземпляры бэкенда поддерживают те же версии протоколов шифрования и SSL, что и Application Gateway. Разные настройки протоколов могут вызвать ошибки при проверке состояния.
Заключение
Системные администраторы и управляющие проекты в Azure должны внимательно следить за состояниями сертификатов и конфигурациями, чтобы избежать ошибок сопоставления имен хостов. Регулярное обновление сертификатов, использование надежных центров сертификации и правильная настройка Azure Application Gateway существенно снизят риск возникновения подобных проблем. Поиск и устранение причин ошибок в Azure требует внимательности и точности, что в конечном итоге приведет к более надежной и устойчивой архитектуре приложения.