ウェブサイトが https へ転送されない(後編)

こんにちは、またお邪魔します ^^。

以前も似たような問題があったような気がするのですが、今回は別の原因かもしれません。

問題は以下の通りです:

  • ブラウザで cp2077.eu を開くと、「メンテナンス中」というメッセージが表示されます。これは私が作成したテンプレートですが、セキュリティ的には問題があります。
  • しかし、https://cp2077.eu を開くと、Discourse フォーラムが表示され、SSL で保護された安全なサイトとして表示されます。

私の推測では、nginx の設定ファイルが HTTP から HTTPS へのリダイレクトを正しく処理していないのではないかと思います。以下が私の設定ファイルです。確認しましたが、どこが問題なのか分かりません。一見すると問題なさそうに見えるのですが(多分大丈夫だと思います)、詳しい方がいればこの問題を解決するお手伝いをしていただけないでしょうか。よろしくお願いします:

server {

    listen 80;
    listen [::]:80;
    server_name www.cp2077.eu;
    return 301 https://cp2077.eu$request_uri;
}

server {

    listen 443 ssl;
    listen [::]:443 ssl;
    server_name www.cp2077.eu;
    ssl_certificate /etc/letsencrypt/live/cp2077.eu/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/cp2077.eu/privkey.pem;
    return 301 https://cp2077.eu$request_uri;
}

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name cp2077.eu;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/cp2077.eu/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/cp2077.eu/privkey.pem;



    http2_idle_timeout 5m; # デフォルトの 3m から 5m に変更

    location / {
        proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;

    }

}

これを修正して問題を解決するには、どのような変更を加えるべきでしょうか?

あなたは ẁww. のみを許可しています。

www と cp2077.eu を https にリダイレクトするにはどうすればよいですか?

ドメインを追加してみてください。

server_name cp2077.eu www.cp2077.eu;

投稿する前に試しましたが、コマンドを実行すると以下のエラーが表示されます:nginx -t

nginx: [warn] サーバー名 "cp2077.eu" が 0.0.0.0:443 で競合しています。無視されました
nginx: [warn] サーバー名 "cp2077.eu" が [::]:443 で競合しています。無視されました

それを最初の server {}(ポート 80)にのみ追加しましたか?

80 と 443 の両方に追加しました

—編集

80 のみに設定し直したところ、動作しているようです。ただし、現在「接続が安全ではありません(このページの一部、例えば画像などが安全ではありません)」という表示が出ています。

Discourse の設定で force https を有効にしてください。

試してみます。アーシャイン、どうもありがとうございます。