На внутреннем сервере установлен Discourse, который прослушивает порт 80. Когда посетитель запрашивает сайт, он всегда перенаправляется на HTTPS, но все ссылки остаются в HTTP. Я не контролирую эту инфраструктуру, и у меня нет других вариантов, кроме порта 80.
Разве это не означает, что вы хотите, чтобы ссылки на страницах, которые отдаются, были по протоколу https, а обработку https вы осуществляете каким-то другим способом?
Мне нужно настроить сервер так, чтобы он слушал порт 80, но выдавал ссылки в формате https. Как решить эту проблему?
Если я правильно понял, вы хотите, чтобы весь HTTP-трафик на порту 80 перенаправлялся на порт 443 (HTTPS), при этом на порту 80 не должен использоваться HTTPS, а только перенаправление на порт 443.
Если это так, то именно так обычно настроены большинство веб-серверов. Например, если вы используете LetsEncrypt для настройки трафика на порту 443 с помощью Apache2 или nginx, LetsEncrypt спросит вас, хотите ли вы настроить такое перенаправление, и выполнит это за вас.
Как уже спрашивал @Falco, какая у вас точная конфигурация? Запускаете ли вы веб-сервер, например nginx или Apache2, перед Discourse в качестве обратного прокси?
Если да, то при настройке LetsEncrypt на nginx или Apache2 программа установки LetsEncrypt автоматически настроит «перенаправление всего HTTP на HTTPS» (если вы выберете «да» в диалоговом окне конфигурации).
То «желаемое решение», о котором вы говорите, — это именно то, что мы вам советовали: например, настроить ваш веб-сервер так, чтобы он перенаправлял трафик порта 80 на порт 443.
И это решение требует изменения веб-сервера, так же как вам уже советовали.
Но позвольте мне повторить это ещё раз, специально для вас, @anton21m потому что мы хотим, чтобы у вас всё получилось!
Вам нужен доступ к веб-серверу и его настройка так, чтобы трафик порта 80 перенаправлялся на порт 443, а также необходимо настроить SSL-сертификаты на том же веб-сервере. Если ваш хостинг-провайдер не позволяет этого сделать, вам нужно перейти к другому провайдеру.
Вы можете рассмотреть возможность размещения у одного из рекомендованных для Discourse хостинг-провайдеров, так как они всё это сделают за вас легко.