Серверу отказано в check_authentication после миграции Drupal
Я только что переместил сайт drupal с одного сервера на другой. На исходном сервере сайт был настроен напрямую в apache. На новом сервере у меня есть промежуточный слой:
На машине запущена система Debian с Docker, а контейнер Docker (в настоящее время только) имеет установку Debian/ Apache2/ MySQL /php. Порты контейнера 80 и 443 открыты снаружи, и перенесенный веб-сайт работает просто отлично. За одним исключением:
На перенесенном сайте drupal есть модуль openid_provider. Я использовал это для входа на другие сайты. Тем не менее, после миграции эта функция не работает: на большинстве сайтов я пытаюсь войти в систему с помощью openid (другие сайты drupal, wordpress, mediawiki), вход не выполняется. Эти сайты выдают сообщения в форме "Проверка OpenID не удалась: сервер отклонен check_authentication".
Интересный факт: openid login по-прежнему работает на сайтах stackexchange;)
Кто-нибудь знает, что происходит? Нет (связанных) ошибок или предупреждений в журналах apache - ни в предоставлении open_id, ни на перенесенном сайте, ни в клиентских журналах.
Я понятия не имею, где и как начать отладку. Дайте мне знать, если вам нужно больше деталей.
Вот модуль drupal, который я использую: https://www.drupal.org/project/openid_provider (я знаю, что он устарел).
Любая помощь будет оценена.
1 ответ
Оказывается, проблема, связанная с разрешением имен:
Все сайты, для которых не удалось выполнить запрос аутентификации, лежат на одном сервере. Этот сервер имел запись в /etc/hosts, в которой доменное имя веб-сайта провайдера OpenID было преобразовано в его старый ip. После удаления этой записи все работает нормально.
Это также объясняет, почему это работает для некоторых других служб (которые размещены на других серверах).
Забавный факт: я потратил 3 дня на отладку модуля Drupal OpenId, просто наблюдая за очевидным.