参考までに、私の Discourse テストサイトは、同じネットワーク(ただしサブネットは異なる)上の別のサーバーで動作している Nginx (npmplus) の背後にある Proxmox コンテナで実行されています。特に変わったことはありません。force-https を有効にしようとしましたが、多数の CSRF 検証エラーが発生し続けるため、戦う価値がないとして再度無効にしました。それらのこととは無関係に、Nginx と Cloudflare が適切に設定されているため、サイトは https で正常に動作しています。
先ほどサイト上で DiscourseID を有効にしようとしましたが、エラーに遭遇しました。
npmplus と数時間格闘して Discourse の CSRF 検証が何でもかんでも文句を言うのを止めることなく、回避策はありますか?このスレッドは npmplus や SSL のデバッグ用ではなく、Discourse ID の修正を目的としています。
エラーメッセージ「Discourse ID 返却」は、サイトの Redirect URI が https でなければならないと指摘しています。そのため、force_https を有効にするか、プロキシ設定を通じてリクエストが https 経由で送信されていることを明示する必要があります。
ただし、正常に動作しないものもあります:
「いいね!」 3
ふむ、そんなことには気づいたことがなかったな。以前述べた通り、force_https を有効にしようと試みたが、どんな操作でも CSRF エラーが発生し続けた。おそらく、npmplus では通常の nginx 変数が機能しないのだろう(上記の指示にもそう書かれている通り)。私が使用していた設定は以下の通りだ:
それに加えて、私の CT のポート 443 が応答しなかったため、現在は依然としてローカルでポート 80 を介して接続している。
Falco
(Falco)
4
リバースプロキシの設定を修正し、適切な HTTPS を動作するようにしてください。
「いいね!」 1
現在の問題は、npmplus が露出している変数の不審な動作にあると思います。以前は動作する設定がありましたが、それを失ってしまい、現時点ではどうすればよいかわかりません。以下の設定に落ち着きましたが、BAD CSRF エラーが発生し、再び Rails コンソールで修正する必要に迫られるのを避けるため、100% 動作するまでこの設定を有効にしたくありません。
興味深いことに、これは 443 番ポート以上のトラフィックを拒否しているように見えます。現在プロキシは 80 番ポートに設定されているにもかかわらず、これは正常ではないと思います。
このポインタを参照できません - Discourse コンテナについてお話ししていると思われます。
force_https は、Discourse がポート 443 (HTTPS) でサービスを提供するかどうかには影響しません。Discourse が常に https を介してアクセスされていると想定するよう指示するだけです。
「いいね!」 1