Генерация https-ссылок на порту 80

Извините, я не до конца понимаю ваши сообщения.

Вы написали:

Мне нужно настроить сервер так, чтобы он слушал порт 80, но выдавал ссылки в формате https. Как решить эту проблему?

Если я правильно понял, вы хотите, чтобы весь HTTP-трафик на порту 80 перенаправлялся на порт 443 (HTTPS), при этом на порту 80 не должен использоваться HTTPS, а только перенаправление на порт 443.

Если это так, то именно так обычно настроены большинство веб-серверов. Например, если вы используете LetsEncrypt для настройки трафика на порту 443 с помощью Apache2 или nginx, LetsEncrypt спросит вас, хотите ли вы настроить такое перенаправление, и выполнит это за вас.

Как уже спрашивал @Falco, какая у вас точная конфигурация? Запускаете ли вы веб-сервер, например nginx или Apache2, перед Discourse в качестве обратного прокси?

Если да, то при настройке LetsEncrypt на nginx или Apache2 программа установки LetsEncrypt автоматически настроит «перенаправление всего HTTP на HTTPS» (если вы выберете «да» в диалоговом окне конфигурации).