Безопасность · OpenClaw

OpenClaw 2026.10.8: пароль для standalone browser server

Проверьте HTTP-доступ к браузеру: OpenClaw создаёт секрет для запущенных HTTP-серверов без общего секрета.

· 2 мин чтения

Коротко

  • Автогенерация секрета привязана к standalone browser server и sandbox browser bridge.
  • В режиме trusted-proxy пароль остаётся в процессе Gateway, а клиенту нужен явный gateway.auth.password.
  • В режиме password автогенерация пропускается, поэтому задайте пароль явно.

Сверено с документацией OpenClaw 2026.10.8, 27 октября 2026.

Отдельная проверка касается standalone browser server и sandbox browser bridge. Их HTTP-доступ использует только аутентификацию с общим секретом.

Что изменилось в OpenClaw 2026.10.8

Автогенерация теперь привязана к HTTP-серверам: standalone browser server и sandbox browser bridge.

  • Режим none создаёт токен и сохраняет его как gateway.auth.token.
  • Режим trusted-proxy создаёт пароль только в памяти процесса Gateway.
  • Режим password не запускает автогенерацию.

При trusted-proxy gateway.auth.password также служит локальным паролем Gateway. Его изменение перезапускает Gateway.

Три режима аутентификации

  • none: OpenClaw создаёт токен и сохраняет его в gateway.auth.token.
  • trusted-proxy: пароль создаётся внутри Gateway, но в конфиг не записывается.
  • password: автогенерация пропускается, задайте пароль явно.

Если для режима уже задан явный строковый секрет, OpenClaw не создаёт новый. Для HTTP-доступа браузера принимаются bearer token, заголовок x-openclaw-password или HTTP Basic auth.

Где ломается trusted-proxy

В режиме trusted-proxy внешний клиент standalone loopback API не получит сгенерированный пароль: он остаётся в процессе Gateway. Ему нужен явный gateway.auth.password.

Заголовки Tailscale Serve и режим trusted-proxy не аутентифицируют standalone loopback browser API.

{
  gateway: {
    // Trusted-proxy auth expects the proxy's source IP to be non-loopback by default
    bind: "lan",

    // CRITICAL: Only add your proxy's IP(s) here
    trustedProxies: ["10.0.0.1", "172.17.0.1"],

    auth: {
      mode: "trusted-proxy",
      identityScopes: {
        "admin@company.org": ["operator.admin"],
      },
      trustedProxy: {
        // Header containing authenticated user identity (required)
        userHeader: "x-forwarded-user",

        // Optional: headers that MUST be present (proxy verification)
        requiredHeaders: ["x-forwarded-proto", "x-forwarded-host"],

        // Optional: restrict to specific users (empty = allow all)
        allowUsers: ["nick@example.com", "admin@company.org"],

        // Optional: allow a same-host loopback proxy after explicit opt-in
        allowLoopback: false,

        // Optional: let authenticated proxy users enroll UI devices and upgrade scopes
        deviceAutoApprove: {
          enabled: false,
          scopes: ["operator.read", "operator.write", "operator.approvals", "operator.questions"],
        },
      },
    },
  },
}

Почему встроенный сервис браузера не меняет конфиг

Встроенный сервис браузера Gateway не имеет HTTP-слушателя. При первом использовании браузера он не создаёт секрет и не пишет в конфиг.

Что проверить у себя

  1. Проверьте режим и явные секреты в ~/.openclaw/openclaw.json: gateway.auth.mode, gateway.auth.token, gateway.auth.password.
  2. Для standalone browser server и sandbox browser bridge найдите секрет управления браузером. В режиме none проверьте gateway.auth.token.
  3. Для standalone loopback API в режиме trusted-proxy задайте явный gateway.auth.password.
  4. Изменение gateway.auth.password перезапускает Gateway.