# IwoooS DNS / TLS / certbot 只讀清冊 | 項目 | 內容 | |------|------| | 日期 | 2026-06-11 | | 狀態 | `repo_only_inventory_ready` | | 工具 | `scripts/security/domain-tls-certbot-inventory.py` | | Snapshot | `docs/security/domain-tls-certbot-inventory.snapshot.json` | | Schema | `docs/schemas/domain_tls_certbot_inventory_v1.schema.json` | | runtime gate | `0` | ## 1. 目的 公開入口的風險不只在 Nginx conf 本身,也包含 domain、TLS certificate path、ACME challenge path、admin route、WebSocket 與 upstream 的對應關係。本清冊把這些關係從已提交的 Nginx source-of-truth 轉成可重跑的只讀證據,讓 owner review 有一致欄位。 本階段不做 DNS 查詢、不連線 TLS、不執行 certbot、不 SSH、不讀 TLS private key 內容、不 reload Nginx、不改主機。 ## 2. 目前 repo-only 摘要 | 指標 | 值 | |------|----| | Nginx source config | `3` | | managed domain | `14` | | TLS certificate path | `10` | | ACME challenge domain | `7` | | 需要 owner 確認的 certificate path 關係 | `4` | | admin route domain | `1` | | WebSocket route domain | `6` | | owner request / received / accepted | `0 / 0 / 0` | | runtime gate | `0` | ## 3. 需要 owner 確認的項目 以下不是判定錯誤,也不是 live TLS 失效結論;它只表示 repo template 的 `server_name` 與 certificate path 目錄名稱不同,需 owner 確認是否由 SAN、wildcard 或共用憑證合法覆蓋。 | domain | certificate path domain | 狀態 | |--------|--------------------------|------| | `gitea.wooo.work` | `sentry.wooo.work` | 需 owner 確認 | | `langfuse.wooo.work` | `sentry.wooo.work` | 需 owner 確認 | | `signoz.wooo.work` | `sentry.wooo.work` | 需 owner 確認 | | `tsenyang.com` | `www.tsenyang.com` | 需 owner 確認 | ## 4. owner response 欄位 任何 domain / TLS / certbot 變更或確認,都至少要具備: 1. `owner_role_or_team` 2. `decision` 3. `decision_reason` 4. `affected_scope` 5. `redacted_evidence_refs` 6. `followup_owner` 7. `rollback_owner` 8. `maintenance_window` 9. `validation_plan` ## 5. 指令 更新 snapshot: ```bash python3 scripts/security/domain-tls-certbot-inventory.py \ --root . \ --generated-at 2026-06-11T18:40:00+08:00 \ --output docs/security/domain-tls-certbot-inventory.snapshot.json ``` 只輸出目前清冊: ```bash python3 scripts/security/domain-tls-certbot-inventory.py --root . ``` ## 6. 邊界 1. 本清冊不執行 DNS query。 2. 本清冊不做 live TLS probe。 3. 本清冊不執行 certbot renew。 4. 本清冊不讀 TLS private key 內容,只記錄 certificate / key path metadata。 5. 本清冊不 SSH、不 reload / restart Nginx、不修改主機、不改 DNS。 6. IwoooS UI 可顯示 domain / TLS 清冊,但不得把清冊可見視為 owner 已確認或 runtime 已授權。 ## 7. 完成度 | 工作 | 完成度 | 說明 | |------|--------|------| | repo-only domain / TLS 清冊 | `100%` | 已從 Nginx source-of-truth 產出 domain、cert path、ACME、admin、WebSocket 與 upstream 摘要 | | owner confirmation queue | `100%` | 已列出 4 個需確認的 certificate path 關係 | | IwoooS 前台只讀呈現 | `待本輪部署驗證` | 只顯示摘要與邊界,不提供操作按鈕 | | live DNS / TLS validation | `0%` | 尚未批准;不得用本清冊替代 live probe | | certbot renew / Nginx reload | `0%` | 未授權,未執行 | ## 8. Preflight 銜接 `docs/security/PUBLIC-GATEWAY-PREFLIGHT-INVENTORY.md` 會把本清冊中的 domain、TLS certificate path、ACME、admin route 與 WebSocket 影響面,轉成 public gateway reload / route change 前的 route smoke 與 owner check 條件。 此銜接仍不代表 DNS 查詢、TLS probe、certbot renew、Nginx reload 或主機寫入已授權。