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