2026 OpenClaw 閘道於遠端常駐 Mac 上接收 GitHub Webhook 公網回呼的整合示意

GitHub Webhook 接到 OpenClaw 風格閘道,常見落差是公網路徑驗證語意localhost 可過、正式遞送 401;簽章用到被改寫的 body;同步工作過長逾時。順序可依 SSH 複現。見 OpenClaw 遠端 Mac 部署實操GitHub Actions 多機協作手冊

一、公網回呼:TLS、Host、反代

GitHub 只打公開 URL;本機 curl 127.0.0.1 成功不代表邊界正確。核對 DNSTLS 鏈/SNI、反代 X-Forwarded-ProtoHost。邊緣 零信任/Basic Auth 應納入遞送設計——常見 401 來源。

可複現:公網 POST 重放,路徑/標頭與 GitHub 一致;勿只用 loopback。

二、簽章:X-Hub-Signature-256 與 raw body

GitHub 以 Secret原始 body做 HMAC-SHA256。中介層先解析 JSON 再序列化會讓簽章失敗。驗證層請讀位元組級內容並時間常數比對;Webhook 路由獨立於一般表單。

三、時間戳與重送

時間窗檢查需 NTP 正常;偏移數分鐘即誤判過期。GitHub 可能重送,請以 delivery id 或事件指紋做幕等,容忍窗納入冷啟動。

四、401 收斂

核對 URL 尾斜線Secret 版本、邊緣 Basic Auth,以及驗證是否早於 raw body。公網以最小 POST 重放;log 輸出失敗原因枚舉(簽章/時間戳/權杖)。

五、逾時與紅色遞送

單次遞送有逾時上限;同步重活改佇列並快回 2xx,或拆分收事件與工作流。冷啟動與連線池納入 SLO;launchd 常駐時留意健康檢查與重啟尾延遲。

六、工單檢查清單

  • 公網 curl -v 與遞送狀態碼一致。
  • raw body 重算 HMAC,對齊 X-Hub-Signature-256
  • NTP、容忍窗、重送幕等鍵就緒。
  • 401 能對應中介層或 Secret 版本;處理端非阻塞。

Webhook 閘道與 Mac mini

TLS、簽章、時間戳抖動會放大成遞送噪音。Mac mini 在 Apple Silicon 上具可預測效能低待機功耗,適合 7×24 承接閘道;原生 Unixcurlopenssl 驗證可在 SSH 完成;macOS 的 Gatekeeper、SIP、FileVault 有助收斂攻擊面。

若要把公網回呼跑在更安靜、長期成本更低的硬體,Mac mini M4 是兼顧體積與餘裕的起點;現在就把獨享遠端 Mac 納入評估,開啟 Macstripe 首頁 比對區域與機型。