Ошибка phpmyadmin - Существует несоответствие между HTTPS, указанным на сервере и клиенте

Настраивал сегодня очередной web сервер с внешним балансировщиком на базе nginx и столкнулся с небольшой ошибкой в phpmyadmin. Панель была русская, текст ошибки соответственно тоже русский. В рунете решения не нашел, поэтому решил им поделиться с остальными.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Проблема вот в чем. Имеется сервер с nginx, работающий в режиме proxy_pass, как описано в статье. На этом сервере настроены https соединения с клиентами. А дальше запросы проксируются на бэкенд по http. На этом бэкенде работает в том числе phpmyadmin на отдельном домене. При входе в панель появляется ошибка.

Существует несоответствие между HTTPS, указанным на сервере и клиенте. Это может привести к неработоспособному phpMyAdmin или угрозе безопасности. Исправьте конфигурацию своего сервера, чтобы правильно указать HTTPS.

Существует несоответствие между HTTPS, указанным на сервере и клиенте. Это может привести к неработоспособному phpMyAdmin или угрозе безопасности. Исправьте конфигурацию своего сервера, чтобы правильно указать HTTPS.

Суть проблемы в том, что где-то в недрах phpmyadmin есть проверка, которая определяет, что с клиентом общаемся по https, а где-то в промежутке между ним проскакивает http. Если залогиниться в панель, то дальше она работает нормально. По большому счету, это не ошибка, а простое предупреждение. Но мне оно не нравится.

Я не разбирался подробно, что там за проверки и как их отключить. Вместо этого просто обманул phpmyadmin, добавив на прокси заголовок, который принудительно записывает туда информацию о том, что протокол общения https. Выглядит это вот так.

location / {
    proxy_pass http://10.20.50.3:80;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto https;
        }

После этого ошибка исчезла.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

4 комментария

  1. Работает как по-волшебству!
    Спасибо и успехов!

  2. Владимир, здравствуйте.
    Воюю с nginx в роли реверс-прокси. PhpMyAdmin починился - спасибо.

    А вот не встречали ли вы такой ситуации:
    Обновился сервер Zabbix (стоящий так же за прокси) до 5.4 и перестал показывать дашборды. Просто черный экран.
    При этом если к примеру пробросить порт на роутере прямо на виртуалку с Zabbix - то работает и всё показывает, а через посредника нет.
    Выключал HTTPS - по HTTP такая же картина.

    При этом Zabbix прекрасно всё собирает и шлет в телегу и тп.

    • Проще всего открыть инструменты разработчика в chrome и посмотреть, какие там ошибки с загрузкой. Скорее всего там будут подсказки, почему интерфейс не грузится.

  3. Мы все как будто хотим одними тропами ))) столкнулся с такой же ошибкой
    Спасибо за точ то нашли раньше !!!

    Странно что вы не столкнулись с этой ошибкой

    Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar