Серверу отказано в 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, просто наблюдая за очевидным.

Другие вопросы по тегам