まだ OpenClaw をインストールしていませんか?
パソコンへの影響が心配?ClawTank なら60秒でクラウドデプロイ、ファイルへのリスクゼロ。
OpenClaw をリバースプロキシの背後で実行すると、HTTPS、カスタムドメイン、および1台のサーバーで複数のサービスを実行する機能が得られます。Caddy、Nginx、または Traefik で正しく設定する方法を紹介します。
なぜリバースプロキシを使うのか?
- auto-TLS による HTTPS:Let's Encrypt による無料 SSL 証明書
- カスタムドメイン:
openclaw.yourdomain.com で OpenClaw にアクセス
- セキュリティ:ゲートウェイポートをパブリックインターネットから隠す
- マルチサービス:同じサーバーで OpenClaw を他のアプリと並行して実行
Trusted Proxies 設定
これが最も重要なステップです。これがないと、OpenClaw は本物のローカル接続とスプーフィングされた接続を区別できません。
openclaw config set gateway.trustedProxies '["127.0.0.1"]'
これをスキップすると、以下が表示されます:
WARN gateway.trusted_proxies_missing
Reverse proxy headers are not trusted.
そして、OpenClaw のローカルクライアントチェックがプロキシを通じて正しく機能しなくなります。
trustedProxies の役割
リクエストがリバースプロキシを通過すると、元のクライアント IP が失われます。プロキシは X-Forwarded-For ヘッダーでそれを追加し直します。しかし、OpenClaw は trustedProxies リスト内の IP からのこれらのヘッダーのみを信頼します。
これがないと:
- OpenClaw はすべてのリクエストを
127.0.0.1(プロキシ)からのものとして認識します
- クライアントごとのアクセス制御を適用できません
- セキュリティ監査が
trusted_proxies_missing をフラグします
Caddy セットアップ
Caddy が最も簡単なオプションです — 自動 HTTPS、最小限の設定。
Caddyfile
openclaw.yourdomain.com {
reverse_proxy localhost:3001
}
これだけです。Caddy が自動的に:
- Let's Encrypt 証明書を取得
- HTTPS 終端を処理
- リクエストを OpenClaw に転送
Caddy 用 OpenClaw 設定
openclaw config set gateway.mode local
openclaw config set gateway.trustedProxies '["127.0.0.1"]'
openclaw restart
Caddy のリロード
caddy reload --adapter caddyfile --config /etc/caddy/Caddyfile
重要: リロード時には必ず --adapter caddyfile を含めてください。これがないと、Caddy がサイレントに失敗する場合があります。
Nginx セットアップ
Nginx 設定
server {
listen 443 ssl;
server_name openclaw.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/openclaw.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/openclaw.yourdomain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3001;
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-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name openclaw.yourdomain.com;
return 301 https://$server_name$request_uri;
}
重要なポイント:
- WebSocket サポート:
Upgrade と Connection ヘッダーは OpenClaw のリアルタイム接続に必要です
- 転送ヘッダー:
X-Real-IP と X-Forwarded-For が実際のクライアント IP を OpenClaw に渡します
- HTTPS リダイレクト:すべてのトラフィックを HTTPS に強制
SSL 証明書の取得(Certbot)
sudo certbot --nginx -d openclaw.yourdomain.com
Nginx 用 OpenClaw 設定
openclaw config set gateway.mode local
openclaw config set gateway.trustedProxies '["127.0.0.1"]'
openclaw restart
Traefik セットアップ
docker-compose.yml
services:
traefik:
image: traefik:v3.0
command:
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.le.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.le.acme.email=you@example.com"
- "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "letsencrypt:/letsencrypt"
openclaw:
image: openclaw-stack
labels:
- "traefik.http.routers.openclaw.rule=Host(`openclaw.yourdomain.com`)"
- "traefik.http.routers.openclaw.tls.certresolver=le"
- "traefik.http.services.openclaw.loadbalancer.server.port=3001"
environment:
- OPENCLAW_GATEWAY_TOKEN=your-stable-token
DNS 設定
ドメインをサーバーの IP に向けてください:
Type: A
Name: openclaw(または任意のサブドメイン)
Value: YOUR_SERVER_IP
TTL: 300
Cloudflare ユーザーへ: Cloudflare の無料プランでワイルドカードサブドメインを使用する場合、DNS レコードを Proxied(オレンジの雲)ではなく DNS only(グレーの雲)に設定してください。Cloudflare の無料プランはプロキシされたワイルドカード DNS レコードをサポートしていません。
セキュリティ監査
プロキシを設定した後、OpenClaw のセキュリティ監査を実行してください:
openclaw security audit
以下が表示されるはずです:
OK gateway.trusted_proxies — reverse proxy headers are trusted
より詳細な分析には:
openclaw security audit --deep
これは以下をチェックします:
- Trusted Proxy 設定
- 攻撃面(開いているポート、有効なツール)
- Webhook セキュリティ
- ブラウザコントロール設定
トラブルシューティング
"trusted_proxies_missing" 警告
openclaw config set gateway.trustedProxies '["127.0.0.1"]'
openclaw restart
ダッシュボードは読み込まれるが接続できない
WebSocket 接続には特別なプロキシ設定が必要です。プロキシが Upgrade と Connection ヘッダーを渡していることを確認してください。
証明書エラー
- 証明書をリクエストする前に DNS がサーバーを指している必要があります
- HTTP-01 チャレンジ(Let's Encrypt)のためにポート 80 が開いている必要があります
- 初回の証明書発行時には Cloudflare プロキシを無効にする必要があります
502 Bad Gateway
OpenClaw が実行されていないか、期待されるポートにない場合:
openclaw status
openclaw config get gateway.port
事前設定済みプロキシ
ClawTank はリバースプロキシ、TLS 証明書、サブドメインルーティングを自動的に処理します。各インスタンスに独自の HTTPS サブドメインが割り当てられます — プロキシ設定は不要です。
OpenClaw をデプロイしませんか?
Docker・SSH・DevOps 不要。1分以内でセットアップ。
無料トライアルを始める