安全でないフォントリクエスト

Mixed Content: 「<URL>」のページはHTTPSで読み込まれましたが、安全でないフォント「<URL>」をリクエストしました。このリクエストはブロックされました。コンテンツはHTTPSで提供される必要があります。

および、discourse-fonts gem からのフォントに対する40件のリクエスト。これは、PostgresとRedisがローカルネットワーク内の別のサーバーで実行されており、接続は「ソケット化」されていますが、もちろん外部にはHTTPSで提供される、クリーンなインストールです。類似のスレッドスレッドがありますが、私には明確な答えがありません。CSSを確認すると、「wizard.scss」(ソースマップ付き)を指しています。何かヒントはありますか?

force https 設定を有効にしましたか?

「いいね!」 1

おそらくないでしょう。どこで設定しますか?また、CSSがHTTPS経由で静的アセットをリクエストしたり、相対参照を使用したりするのではなく、そもそもなぜ必要なのでしょうか?

参考までに、外部に公開されているWebサーバーには、典型的な301リダイレクトを設定しています。

編集:

この投稿を参考に設定を見つけました。@Arkshineさん、ありがとうございます。

「いいね!」 1

なぜHTTPリンクがどこかにあるのか不明です。HTTPSはどちらにしても強制されるべきです。

検索バーで見つけることができます。

「いいね!」 2

私もです。何も変更していません。通常のlauncher build appだけです。これらのURLは処理済みのCSSに含まれているようですが、明らかに私は(scssも)一切触っていません。app.ymlにもhttps関連のものは見つからなかったので、わかりません。force_httpsで問題が回避されるようです。

「いいね!」 1

FORCE_HTTPS は、Discourse がリクエストを書き換えるように指示します。

コンテナ外で SSL カプセル化を行っている場合でも、説明されている問題を回避するために必要です。

「いいね!」 1

それは「必要」をどのように定義するかによります。現在、コンパイルされたCSSファイルがhttpスキーマを明示的に使用して静的アセットを参照しているという実際の問題を回避する必要があるかもしれませんが、私の意見では、長期的にはこれは必要ないはずです。

FORCE_HTTPS の目的として必要です。これにより、Discourse は安全に提供されていることを認識し、リンクをそのように書き換えることができます。

HTTP/HTTPS のアセット (JS/CSS) の URL プロトコルに影響を与える要因/条件は何でしょうか?

  1. 以下をコメントアウトし、サイトに HTTP でアクセスした場合、アセットの URL も HTTP になります。
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

この場合、force_https を有効にすると、リクエストしたドメインに証明書がインストールされていないと、すべてのアセット URL で R_SSL_PROTOCOL_ERROR エラーが発生します。それを回避するには、SSL プロトコル問題を解決するためにそのドメインに証明書をインストールします。

  1. 上記のテンプレートをコメント解除した状態で Discourse をインストールした場合、サイトのアセット URL はサイトのベース URL プロトコルと共に HTTPS になるはずです。さらに、force https は管理者 UI では非表示になります。

元の投稿で述べたように、私の場合は証明書などもすべて正しく有効ですが、外部へのすべての接続はリバースプロキシ(当然ながらnginx)によって処理され、Discourseへの接続はUnixソケット経由で行われます。そのため、あなたが言及しているものの代わりに templates/web.socketed.template.yml を使用しています。それでも、これは静的URLにハードコードされた明示的な http: スキーマが必要になる原因にはならないはずです。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.