Discourse設定変更(Railsまたは管理画面で設定)

Discourseの設定でセキュリティ設定をforce_https後、ログイン、ログアウト、記事の作成、設定の変更などができなくなったためDocker内で設定変更。

root@ubuntu-hp:/var/discourse# ./launcher enter app

root@ubuntu-hp-app:/var/www/discourse# rails c

[1] pry(main)> SiteSetting.enable_local_logins = true
=> true
[2] pry(main)> SiteSetting.force_https = false
=> false
[3] pry(main)> exit
root@ubuntu-hp-app:/var/www/discourse#

セキュリティポリシーの設定変更

コンテナ内でrailsコマンド実行

$ docker exec -ti app bash
# rails c
[1] pry(main)> SiteSetting.content_security_policy = false
=> false
[2] pry(main)> exit

セキュリティポリシーを指定

HTTPリクエストをブロックしてHTTPSに強制

NginxでCSPを指定

server {
    # ...
    add_header Content-Security-Policy "upgrade-insecure-requests;" always;
    # ...
}

管理画面でCSPを有効にし、Content security policy report onlyのチェックを外します。