Files
awoooi/docs/security/DOMAIN-TLS-CERTBOT-INVENTORY.md
Your Name 6239712507
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
Code Review / ai-code-review (push) Has been cancelled
feat(security): 新增 public gateway preflight 只讀清冊
2026-06-12 01:25:04 +08:00

3.7 KiB
Raw Blame History

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

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

只輸出目前清冊:

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 或主機寫入已授權。