ポート80でhttpsリンクを生成する

申し訳ありませんが、あなたの投稿の意図が(完全に)理解できませんでした。

あなたは次のようにおっしゃっています。

サーバーを、ポート 80 で待ち受けつつ、リンクは https で返すように設定したいのですが、この問題をどう解決すればよいでしょうか?

もし私が正しく理解しているなら、すべてのポート 80 の HTTP トラフィックをポート 443 の HTTPS にリダイレクトし、ポート 80 には HTTPS トラフィックを送らず、ポート 80 からポート 443 へのリダイレクトのみを行いたいということですね。

もしそうであれば、これはほぼすべてのウェブサーバーで採用されている設定です。例えば、Apache2 や nginx を使って LetsEncrypt でポート 443 のトラフィックを設定する場合、LetsEncrypt はこのリダイレクトを設定するかどうか尋ね、選択すれば自動的に設定してくれます。

@Falco が尋ねたように、あなたの正確な設定はどのようなものですか?Discourse の前面に nginx や Apache2 などのウェブサーバーをリバースプロキシとして稼働させていますか?

もしそうであれば、nginx や Apache2 で LetsEncrypt を設定する際、設定ダイアログで「はい」を選択すれば、LetsEncrypt のセットアップソフトウェアが自動的に「すべての HTTP を HTTPS にリダイレクト」する設定を行ってくれます。