войти

Вход, который никогда не заканчивается

Условие

Портал luanda.internal состоит из python3-приложения на 127.0.0.1:8080 и nginx перед ним: :443 терминирует TLS (сертификат self-signed, поэтому curl зовут с ключом -k), :80 работает как обычный вход. Приложение обязано отдавать страницы только по https и само уводит клиента на канонический https-адрес, если считает соединение незащищённым. Сейчас вход не заканчивается: curl -k -L https://luanda.internal/login упирается в лимит редиректов — приложение раз за разом отвечает 302 на тот же адрес. Приложение живо: curl http://127.0.0.1:8080/healthz отвечает 200. Задача — сделать так, чтобы вход по https заканчивался страницей (HTTP 200), и на этой странице были верные имя площадки (host=luanda.internal, а не адрес апстрима) и схема (scheme=https). Политику трогать нельзя: обращение по обычному http обязано по-прежнему получать редирект на https. Убрать требование https из приложения или объявить схему https принудительно — не решение: проверяется и то, что вход заканчивается, и то, что http по-прежнему уводит на https. Машина собрана без systemd: nginx перечитывает конфигурацию командой nginx -s reload, портал поднимается /etc/init.d/luanda-portal.

Как проверяется

  • Вход по https заканчивается страницей с верными host и scheme
  • Редирект с http на https сохранён

Обсуждение · 0 комментариев

Войдите, чтобы оставить комментарий.

  • Комментариев пока нет.

Проводите такие интервью у себя

Кандидат чинит реальную систему, вы видите каждую команду и получаете протокол с чекпоинтами: что сделано и когда.