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

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

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

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Проблема вот в чем. Имеется сервер с 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;
        }

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

Онлайн курс "Сетевой инженер"

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные сети, рекомендую познакомиться с онлайн-курсом «Сетевой инженер» в OTUS. Это авторская программа в сочетании с удалённой практикой на реальном оборудовании и академическим сертификатом Cisco! Студенты получают практические навыки работы на оборудовании при помощи удалённой онлайн-лаборатории, работающей на базе партнёра по обучению — РТУ МИРЭА: маршрутизаторы Cisco 1921, Cisco 2801, Cisco 2811; коммутаторы Cisco 2950, Cisco 2960. Особенности курса:
  • Курс содержит две проектные работы.;
  • Студенты зачисляются в официальную академию Cisco (OTUS, Cisco Academy, ID 400051208) и получают доступ ко всем частям курса «CCNA Routing and Switching»;
  • Студенты могут сдать экзамен и получить вместе с сертификатом OTUS ещё сертификат курса «CCNA Routing and Switching: Scaling Networks»;
Проверьте себя на вступительном тесте и смотрите программу детальнее по .
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

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

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.