Desculpe, não estou acompanhando (compreendendo totalmente) suas mensagens.
Você disse,
Preciso configurar o servidor para que ele escute a porta 80, mas forneça links em HTTPS. Como posso resolver esse problema?
Se entendi corretamente, você deseja que todo o tráfego HTTP da porta 80 seja redirecionado para a porta 443 HTTPS, e que não envie tráfego HTTPS na porta 80, apenas redirecione a porta 80 para a porta 443.
Se for esse o caso, é assim que a maioria dos servidores web é configurada; e, por exemplo, se você usar o LetsEncrypt para configurar seu tráfego na porta 443 usando o Apache2 ou o nginx, o LetsEncrypt perguntará se deseja configurar esse redirecionamento e fará isso por você.
Como perguntou @Falco, qual é a sua configuração exata? Você está executando um servidor web como o nginx ou o Apache2 na frente do Discourse como um proxy reverso?
Se for esse o caso, ao configurar o LetsEncrypt no nginx ou no Apache2, o software de configuração do LetsEncrypt configurará automaticamente o “redirecionar todo o HTTP para HTTPS” para você (se você selecionar “sim” quando o diálogo de configuração perguntar).