DOCUMENTS / NETWORK & SECURITY

HTTPSとリバースプロキシでConsole Hubを使う

Console Hubアプライアンスをリバースプロキシ(Nginx / Caddy等)配下に配置し、安全なHTTPS通信およびWebSocketを有効化する設定例です

01 / NETWORK TOPOLOGY

推奨ネットワーク構成

Console Hubアプライアンス本体はローカルループバック(127.0.0.1)または内部プライベートネットワークで待ち受け、リバースプロキシがTLS暗号化(HTTPS)とアクセス制御を担当します

ネットワークフロー要件
  • クライアント(ブラウザ) ↔ [HTTPS / WSS] ↔ リバースプロキシ(443番ポート)
  • リバースプロキシ ↔ [HTTP / WS] ↔ Console Hubコンテナ(3000番ポート)
  • Passkey (WebAuthn) ログインを使用するには、https:// または localhost のSecure Contextが必須です

02

PROXY CONFIGURATION

Nginx設定例とWebSocket対応

リモートターミナル(SSH / Container exec)やDockerログのリアルタイム表示にはWebSocket通信が必要です。プロキシ側で Upgrade および Connection ヘッダーを転送するよう設定してください

Nginx設定ファイル例
# Nginx リバースプロキシ設定例
server {
    listen 443 ssl http2;
    server_name consolehub.example.com;

    ssl_certificate /etc/letsencrypt/live/consolehub.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/consolehub.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;

        # WebSocket サポートヘッダー
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # プロキシ・ホストヘッダー
        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;
    }
}

03

APP ENVIRONMENT

アプリケーション側環境変数とOrigin検証

リバースプロキシを設置する際は、プロキシ設定だけでなくアプライアンス側の環境変数設定が必須です。標準Compose構成(docker-compose.prod.yml)では、.env ファイルまたはシェルの環境変数から参照されます(※app.env 内に定義してもComposeの environment: 定義で空文字列へ上書きされるため、必ず Compose実行ディレクトリの .env ファイルへ記述してください)

必須環境変数設定 (.env)
  • ALLOWED_ORIGINS: 許可するHTTPS公開URLを指定します(例: ALLOWED_ORIGINS=https://consolehub.example.com)。未設定または不一致の場合、ブラウザからのAPI/WebSocket接続が拒否されます
  • TRUSTED_PROXY: プロキシ経由の X-Forwarded-Proto ヘッダー等を信頼するため、アプライアンスコンテナから見たプロキシの正確なIPアドレスまたはCIDRを指定します(例: TRUSTED_PROXY=127.0.0.1 や TRUSTED_PROXY=172.16.0.0/12)。※数値の 1 や空設定は起動時エラーとなります
  • Passkey / WebAuthn設定HTTP環境(IPアドレス直接指定など)ではブラウザのセキュリティ制限によりPasskey登録・認証が動作しません。必ずHTTPS証明書を設定してください
  • WebSocketエラーの解決ターミナル接続がすぐに切断される場合は、プロキシの proxy_read_timeout を拡張し、WebSocket転送ヘッダーが正しく設定されているか確認してください

DOCUMENTS

ドキュメント一覧へ戻る

導入ガイドやDocker Managerの操作リファレンスをご確認いただけます