2026 OpenClaw 本番ドメイン:
Caddy または Nginx リバプロ + TLS と Gateway ローカルバインドチェックリスト(Docker VPS)

TLS 終端 · WebSocket · allowedOrigins · Docker リリース検証

2026 OpenClaw リバプロ TLS と Gateway 露出制御

Docker VPS で OpenClaw を動かし本番ホスト名と HTTPS を載せたいエンジニアは、Gateway の待受場所、TLS 終端の担い手、ブラウザで Control UI がクロスオリジンや不安定なフォールバックを報告する理由で立ち往生しがちです。本文は意思決定表でループバック+エッジプロキシとコンテナポートの公網バインドを対比し、最小の Caddy / Nginx リバプロ断片WebSocket と X-Forwarded ヘッダー、ユーザー入力と揃える allowedOrigins の検収順を示します。OOM と初回 WASM はDocker VPS 長文トラブルシュートへ。インストール概要はv2026.4 インストール、本番露出はマルチチャネル強化、イメージ戻しは固定とロールバック

01

六つの典型ペイン:localhost の curl が通っても公開ホスト名とは限らない理由

Docker で本番化するときはホスト防火壁、127.0.0.1 の publish だけ、チェーン全体の証明書、HTTPS 切替に追随したチャネルコールバック URLもセットです。以下はオンコール用の一次分類で、細かいフラグは利用中バージョンの公式ドキュメント参照です。

  1. 01

    0.0.0.0 筋肉記憶:WAF・レート制限・監査なしで Gateway を公網インターフェースに出すと爆風半径が一気に広がります。

  2. 02

    WebSocket 半端:プロキシが Upgrade / Connection を通さずパネルが一瞬 502 やハンドシェイク失敗に見える。

  3. 03

    Host と origin のズレ:ブラウザはホスト名 A、設定は IP や内部エイリアスのままで Control UI と API のクロスオリジンガードに引っかかる。

  4. 04

    証明書と DNS の順序:DNS 反映前に発行したり自己署名と公開チェーンを混ぜるとモバイルと自動化クライアントで挙動がばらつく。

  5. 05

    ディスクとログ:プロキシとコンテナ双方のアクセスログをローテしないと小型 VPS の inode が忙しい週に満杯になりフリーズに見える。

  6. 06

    アップグレード窓:イメージ固定なしでプロキシ背後をローリングするとステージングとロールバック順を飛ばした新旧 Gateway の挙動分岐が起きる。

注:ブロッカーが OOM、Exit 137、初回 WASM 待ち、Control UI の allowedOrigins デバイスペアリングなら先に対照表記事へ。本稿はメモリプロファイルを繰り返しません。

02

露出の意思決定表:ループバック+リバプロ TLS がデフォルトになる瞬間

この表は実験室から初めて本番ホスト名へ OpenClaw を上げるレビュー向けです。HTTPS、チャネルコールバック、観測性を一続きの検収ストーリーに載せます。

次元127.0.0.1 Gateway + リバプロ TLSコンテナポートを公網へ直バインド
最小露出インターネットが触れるのは 443 のみ、アップストリームはループバック別途ネットワーク ACL と継続的なポート査定が必要
証明書運用Caddy / Nginx / ACME の一本化アプリや sidecar ごとに証明書を持ちドリフトしやすい
WebSocket成熟したプロキシモジュールがアップグレードとタイムアウトを処理ヘッダー落ちしがちで直叩きデバッグが穴を隠す
観測エッジと上流ログを request_id で接続できる同等の集約とアラートを自前で組む必要がある

本番の第一原理:「パネルが開く」と「チャネルが外部に公開した https ホスト名へ折り返せる」を同じチェックリストで同時に満たす。

ポートと設定の硬い注意

  • ドキュメントの Gateway ポート(慣例 18789)がローカル override と食い違うなら設定と compose を端到端検索し、プロキシだけ変えてコンテナの待受をズラさない。
  • allowedOrigins にはブラウザ実利用の https オリジンを載せる。変更後はトラブルシュート記事の順でコールドスタートしキャッシュの誤判定を避ける。
  • 複数インスタンスや blue/green では コールバック URL と DNS TTL を変更票に書き、チャネルの中途半端接続を防ぐ。
03

六ステップ Runbook:DNS からプロキシ断片までの複製順

手順は compose が Gateway をループバック専用ポートで既に起動している前提です。インストール未完なら先にウィザードと compose 基線記事を閉じてください。

  1. 01

    ホスト名を凍結:証明書発行前に A/AAAA がこの VPS を指すことを確かめ、TTL とメンテ窓を明記。

  2. 02

    Gateway バインド確認:ホストで ss -lntp 等を使い待受が 127.0.0.1 の対象ポートのみか検証。

  3. 03

    プロキシ選択:単一ノード最小構成なら Caddy 自動 HTTPS。既存 Nginx 資産へは stream/location テンプレで接合。

  4. 04

    最小断片適用:下のブロック参照。上流はドキュメントポートと実ホスト名へ差し替え。

  5. 05

    チャネルコールバック整合:IM や webhook の外部 URL は同一公網ホスト名とパス接頭辞を使う。

  6. 06

    golden path 記録:「ブラウザで https ホストを開く」から「無害なハートビートまたは doctor 一度」までを内部 playbook に書きシフト引継ぎを楽にする。

Caddyfile
openclaw.example.com {
    encode gzip
    reverse_proxy 127.0.0.1:18789
}
nginx
server {
    listen 443 ssl http2;
    server_name openclaw.example.com;
    ssl_certificate     /etc/letsencrypt/live/openclaw.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/openclaw.example.com/privkey.pem;
    location / {
        proxy_pass http://127.0.0.1:18789;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 600s;
    }
}
04

トライアージ・ルータ:症状 → 疑わしい層 → 最初の一手

表はシフトメモとして使い、各行が具体的なログ項目やコマンド出力に結びつくようにし、「なんとなくネットが悪い」で終わらせない。

症状疑わしい層最初の一手
https だけ失敗し上流への素の http は通る証明書チェーンか SNI信頼できるクライアントでチェーン検証、server_name と CN/SAN 突合
静的ページは開くがライブチャネルが即切れWebSocket プロキシタイムアウトread timeout 延長、Upgrade がプロキシを通過するか確認
コンソールがクロスオリジンや blocked originallowedOrigins に https オリジンがないオリジン一覧を書き換え影響プロセスを全部再起動
外向き curl が 502、ローカル curl は 200プロキシ上流が古いポートかコンテナが 127.0.0.1 にいないcompose と publish マップをホップ毎に追う

警告:マルチチャネル強化を読み終えるまで、デモのためにダッシュボードやデバッグ口を 0.0.0.0 にしない。

05

定量化ベースラインと規模対応(変更票に記載)

下の数値は単一 VPS でよく見る観測帯で、ディスクとタイムアウト見積り用でありベンダ SLA ではありません。

  • プロキシ read タイムアウト:長命セッションと一部チャネルは数分単位。エッジの proxy_read_timeout か Caddy 相当を600 秒以上に。短いと切断に見える擬似障害になる。
  • 証明書更新余裕:自動 ACME は期限 ≥14 日前に失敗アラートが来るように。手動更新チームは cron 出力を既存 on-call 経路へ。
  • ログ増加:デフォルト info でプロキシ+コンテナが週数百 MBは小規模チームでも普通。初週は df と inode を実測。
役割推奨
個人サンドボックス低トラフィック、短いメンテで可単一 Caddy+単一 compose+手動変更窓
小チーム本番昼間マルチチャネルイメージ固定+ステージング compose+プロキシと Gateway の段階的ロールバック
Mac / CI へ引継ぎ長ジョブと署名が同居Gateway は VPS に固定、ビルドは共有 Mac プールへ。表は先行記事参照

家庭回線や不安定な小規模クラウドだけを入口にすると動的 IP・ポートリスク制御・予期せぬスリープが重なる。純自前 DC だけに振ると TLS と多地域 DR に時間がかかりパートナーへ説明可能な公網入口を出しにくい。

持続可能な公開 https フロント長寿命エージェントを iOS CI プールから分離したいなら、VpsMesh のクラウド Mac mini レンタルと常時 VPS の組み合わせが現実的な解になりがちです。計算と署名は契約ノードへ、Gateway とエッジ証明書は本 Runbook のまま自前運用でき、「一台が全部」という隠れ SPOF を避けられます。

FAQ

よくある質問

TLS、レート制限、監査は慣れたリバプロへ、Gateway はセッションとツールチェーンへ。公網へ直出しするなら強化チェックリストの露出項目を実施。追加容量は料金注文ページを参照。

ブラウザの完全なオリジン(ポート含む)が allowedOrigins に入っているか確認。混合コンテンツ、IP 直、ホスト名の混在も誤検知。複雑な compose はDocker VPS トラブルシュート。セルフサービスはヘルプセンター

多くの場合アップストリームポートとヘルスチェックが不変か確認するだけ。パス接頭辞や WebSocket ルートが変わるときはリリースノートを読みイメージ固定とロールバック記事に沿って二重インスタンスで検証。