サーバーを実装して、ポート80でリッスンしつつ、リンクはHTTPSで提供するようにする必要があります。この問題をどのように解決すればよいでしょうか?
現在の設定は以下の通りで、すべてのリンクがHTTPになっています:
expose:
# - “443:443” # https
- “80:80” # https
443に名前を変更しようとしましたが、失敗しました。
サーバーを実装して、ポート80でリッスンしつつ、リンクはHTTPSで提供するようにする必要があります。この問題をどのように解決すればよいでしょうか?
現在の設定は以下の通りで、すべてのリンクがHTTPになっています:
expose:
# - “443:443” # https
- “80:80” # https
443に名前を変更しようとしましたが、失敗しました。
それは不可能だと思います。
セキュリティ上の理由から、Let’s Encrypt は非常に厳格であり、443 番ポート以外のポートには SSL 証明書を提供しないと思います。
https 強制 サイト設定を有効にしますか?
なぜこれを行う必要があるのか、説明していただけませんか?
Discourseがインストールされた内部サーバーがあり、ポート80でリッスンしています。訪問者がサイトを要求すると、常にhttpsにリダイレクトされますが、すべてのリンクがhttpのままになっています。このインフラストラクチャは管理していませんが、ポート80以外に手段がありません。
残念ながら、私の場合はそれが機能しません。私は実際には HTTPS を使用していないためです。
無効にすることはできますが、SSL の関係でポート 80 での HTTPS 有効化が不可能なため、これで問題が解決するとは考えにくいです。
Discourse は非標準ポートでの実行をサポートしていません。
これにはポート 80 での HTTPS 実行も含まれます。
つまり、他の場所でリバースプロキシを設定しており、Discourseを含むすべてのサイトのSSLを処理している、ということでしょうか?
試してみましたか?
では、何を実現しようとしているのでしょうか?
つまり、ページに提供されるリンクがHTTPSであり、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 にリダイレクト」する設定を行ってくれます。
はい、彼らは私の意図を正しく理解しました
ええと、Discourse の出力ストリームは常に 80 になっています。他のポートをリッスンすることはできず、Let’s Encrypt に関する設定も見当たりません。
こんにちは、@anton21m さん
はい、これであなたがコンテナの前にリバースプロキシを配置していることがより明確になりました。
使用しているリバースプロキシは何ですか?nginx ですか?それとも Apache2 ですか?
サーバー: nginx/1.14.1
しかし、私はそれへのアクセス権を持っていません
https://forum.qpay.uz/
すべてのリンクが http であることを確認できます
@anton21m さん、新しい Discourse サイトはすっきりとしていて素敵ですね。
私たちは今、あなたの状況を完全に理解しました。ありがとうございます。
nginx または system にアクセスできない場合は、システム管理者に LetsEncrypt のインストールと SSL のサイトへの追加を依頼する必要があります。
nginx にアクセスできず、そのホスティングプロバイダーを使い続ける場合、それが唯一の選択肢です。
お伝えできて残念です。別のホスティングプロバイダーを検討されてはいかがでしょうか?
あなたが仰る「望ましい解決策」とは、私たちが以前からアドバイスしていたことそのものです。例えば、Web サーバーを設定してポート 80 のトラフィックをポート 443 にリダイレクトさせることです。
この解決策には、これまでアドバイスしてきたのと同じく、Web サーバーの変更が必要です。
したがって、@anton21m さん、私たちは堂々巡りを始めています…
しかし、あなたが成功していただけるよう、@anton21m さんのために、もう一度繰り返させてください
![]()
Web サーバーへのアクセス権があり、ポート 80 のトラフィックをポート 443 にリダイレクトするように設定する必要があります。また、同じ Web サーバーで SSL 証明書を設定する必要があります。もしホスティングプロバイダーがこれを許可しない場合は、別のホスティングプロバイダーに移行する必要があります。
Discourse が推奨するホスティングプロバイダーのいずれかでホスティングすることを検討してください。彼らはすべてを簡単に代行してくれます。
これが役立つことを願っています。
推奨:
Discourse の force_https サイト設定を有効にすることで、それを達成できるはずです。