Files
awoooi/docs/security/DOMAIN-TLS-CERTBOT-INVENTORY.md

4.7 KiB
Raw Permalink 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. 2026-06-14 Owner Confirmation Request

已新增 docs/security/DOMAIN-TLS-CERTBOT-OWNER-CONFIRMATION-REQUEST.mddocs/security/domain-tls-certbot-owner-confirmation-request.snapshot.json,將 4 個需確認的 certificate path 關係轉成 owner confirmation request 草稿。

目前固定為 owner_confirmation_request_count=4c0_owner_confirmation_request_count=4required_owner_field_count=9confirmation_question_count=5rejection_guard_count=12owner_response_received_count=0owner_response_accepted_count=0runtime_gate_count=0

此 artifact 只表示未來可向 owner 請求 SAN / wildcard / 共用憑證覆蓋關係的脫敏確認;不代表 request sent、recipient confirmed、owner response received / accepted、DNS query、live TLS probe、certbot renew、Nginx reload、host write、production write 或 runtime gate。

6. 指令

更新 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 .

7. 邊界

  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 已授權。

8. 完成度

工作 完成度 說明
repo-only domain / TLS 清冊 100% 已從 Nginx source-of-truth 產出 domain、cert path、ACME、admin、WebSocket 與 upstream 摘要
owner confirmation queue 100% 已列出 4 個需確認的 certificate path 關係
owner confirmation request artifact 100% 已新增 request 草稿、snapshot 與 guardrequest sent / received / accepted 仍為 0
IwoooS 前台只讀呈現 待本輪部署驗證 只顯示摘要與邊界,不提供操作按鈕
live DNS / TLS validation 0% 尚未批准;不得用本清冊替代 live probe
certbot renew / Nginx reload 0% 未授權,未執行

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