Nginx をアプリケーションのリバースプロキシとして設定し、無料の Let's Encrypt 証明書で HTTPS を自動化します。

このガイドは、Nginx がすでにインストールされていて (Nginx インストールガイドを参照)、VPS の IP を指すドメインがあることを前提としています。

  1. Certbot と Nginx プラグインをインストールします:
    apt update && apt install certbot python3-certbot-nginx
  2. /etc/nginx/sites-available/myapp にサイト設定を作成します。yourdomain.com とプロキシ先のポートはご自身の値に置き換えてください:
    server {
        listen 80;
        server_name yourdomain.com;
    
        location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
  3. サイトを有効化して Nginx をリロードします:
    ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
    nginx -t && systemctl reload nginx
  4. ポータルの上流ファイアウォールとローカルの両方で、ポート 80 と 443 を開放します:
    ufw allow "Nginx Full"
  5. 無料の SSL 証明書を取得します:
    certbot --nginx -d yourdomain.com
    Certbot が Nginx の設定を自動的に書き換え、HTTPS と HTTP から HTTPS へのリダイレクトを処理します。
  6. 自動更新が有効になっていることを確認します:
    systemctl status certbot.timer
    Certbot は証明書の有効期限前に自動で更新するため、手作業は不要です。

複数のドメイン: サイトを追加するたびに手順 2 から 5 を繰り返し、ドメインごとに別の設定ファイルを使用します。それぞれが個別の証明書を取得します。

このガイドは役に立ちましたか?

フィードバックをありがとうございます!