{ "confirmation_questions": [ { "gate_effect": "不得增加 request sent / received / accepted / runtime gate。", "instruction": "請 owner 說明 certificate path domain 與 service domain 不同時,是否由 SAN、wildcard 或共用憑證合法覆蓋。", "question_id": "certificate_coverage_basis", "required": true }, { "gate_effect": "不得增加 request sent / received / accepted / runtime gate。", "instruction": "若需提供憑證狀態,只能提供脫敏 metadata ref;不得貼 raw certificate、private key 或 certbot account 內容。", "question_id": "certificate_expiry_metadata_ref", "required": true }, { "gate_effect": "不得增加 request sent / received / accepted / runtime gate。", "instruction": "請確認未來 renewal owner、工具路徑與責任邊界;不得在本 request 夾帶 certbot renew 要求。", "question_id": "renewal_owner_and_method", "required": true }, { "gate_effect": "不得增加 request sent / received / accepted / runtime gate。", "instruction": "若 domain 依賴 HTTP-01 ACME route,請確認 challenge path owner 與 route smoke 負責人。", "question_id": "acme_challenge_route_owner", "required": true }, { "gate_effect": "不得增加 request sent / received / accepted / runtime gate。", "instruction": "請提供後續若要 probe、renew 或 reload 時的 validation plan、rollback owner 與維護窗口。", "question_id": "postcheck_and_rollback_owner", "required": true } ], "execution_boundaries": { "action_buttons_allowed": false, "certbot_renew_authorized": false, "certbot_renew_executed": false, "dns_query_authorized": false, "dns_query_executed": false, "host_write_authorized": false, "host_write_executed": false, "live_tls_probe_authorized": false, "live_tls_probe_executed": false, "nginx_reload_authorized": false, "nginx_reload_executed": false, "not_authorization": true, "owner_response_accepted": false, "owner_response_received": false, "production_write_authorized": false, "recipient_confirmed": false, "request_sent": false, "runtime_execution_authorized": false, "secret_value_collection_allowed": false }, "generated_at": "2026-06-14T20:35:00+08:00", "git_commit": "757f6a53", "next_steps": [ "人工送件前先確認 recipient role / team 與本 snapshot 版本,送件後也只可更新 request metadata。", "收到 owner 回覆後先做敏感 payload 隔離與欄位完整性檢查,不可直接開 DNS / TLS probe。", "若未來要 certbot renew、Nginx reload 或 route smoke,必須另開 maintenance window、rollback owner 與 post-check gate。" ], "owner_confirmation_requests": [ { "action_buttons_allowed": false, "affected_scope": "pending_affected_scope", "certbot_renew_authorized": false, "certbot_renew_executed": false, "certificate_path_domains": [ "sentry.wooo.work" ], "certificate_paths": [ "/etc/letsencrypt/live/sentry.wooo.work/fullchain.pem" ], "config_ids": [ "host188_internal_tools_https" ], "confirmation_questions": [ "certificate_coverage_basis", "certificate_expiry_metadata_ref", "renewal_owner_and_method", "acme_challenge_route_owner", "postcheck_and_rollback_owner" ], "control_tier": "C0", "decision": "pending_owner_decision", "decision_reason": "pending_decision_reason", "dns_query_authorized": false, "dns_query_executed": false, "domain": "gitea.wooo.work", "followup_owner": "pending_followup_owner", "host_write_authorized": false, "hosts": [ "192.168.0.188" ], "live_paths": [ "owner_confirmation_required" ], "live_tls_probe_authorized": false, "live_tls_probe_executed": false, "maintenance_window": "pending_maintenance_window", "nginx_reload_authorized": false, "nginx_reload_executed": false, "not_approval": true, "owner_response_accepted": false, "owner_response_received": false, "owner_response_rejected": false, "owner_review_status": "repo_only_owner_confirmation_required", "owner_role_or_team": "pending_owner_role_or_team", "production_write_authorized": false, "quarantine_written": false, "recipient_confirmed": false, "redacted_evidence_refs": [], "rejection_guards": [ "tls_private_key_or_raw_cert_payload", "certbot_account_key_or_credentials", "dns_provider_or_registrar_credential", "token_secret_cookie_session", "authorization_header_or_basic_auth", "unredacted_certbot_log_or_env_dump", "shell_history_or_private_key_path_dump", "dns_query_or_tls_probe_request", "certbot_renew_execution_request", "nginx_reload_or_route_change_request", "ssh_host_write_or_runtime_request", "production_write_or_action_button_request" ], "request_fields": [ "request_id", "domain", "control_tier", "hosts", "certificate_path_domains", "certificate_paths", "owner_role_or_team", "decision", "decision_reason", "affected_scope", "redacted_evidence_refs", "followup_owner", "rollback_owner", "maintenance_window", "validation_plan", "not_approval" ], "request_id": "domain_tls_certbot_owner_confirmation:gitea.wooo.work", "request_sent": false, "required_owner_fields": [ "owner_role_or_team", "decision", "decision_reason", "affected_scope", "redacted_evidence_refs", "followup_owner", "rollback_owner", "maintenance_window", "validation_plan" ], "rollback_owner": "pending_rollback_owner", "runtime_gate": false, "secret_value_collection_allowed": false, "source_paths": [ "infra/ansible/roles/nginx/templates/188-internal-tools-https.conf.j2" ], "source_snapshot_ref": "docs/security/domain-tls-certbot-inventory.snapshot.json", "status": "draft_not_dispatched", "tls_certificate_path_present": true, "validation_plan": "pending_validation_plan" }, { "action_buttons_allowed": false, "affected_scope": "pending_affected_scope", "certbot_renew_authorized": false, "certbot_renew_executed": false, "certificate_path_domains": [ "sentry.wooo.work" ], "certificate_paths": [ "/etc/letsencrypt/live/sentry.wooo.work/fullchain.pem" ], "config_ids": [ "host188_internal_tools_https" ], "confirmation_questions": [ "certificate_coverage_basis", "certificate_expiry_metadata_ref", "renewal_owner_and_method", "acme_challenge_route_owner", "postcheck_and_rollback_owner" ], "control_tier": "C0", "decision": "pending_owner_decision", "decision_reason": "pending_decision_reason", "dns_query_authorized": false, "dns_query_executed": false, "domain": "langfuse.wooo.work", "followup_owner": "pending_followup_owner", "host_write_authorized": false, "hosts": [ "192.168.0.188" ], "live_paths": [ "owner_confirmation_required" ], "live_tls_probe_authorized": false, "live_tls_probe_executed": false, "maintenance_window": "pending_maintenance_window", "nginx_reload_authorized": false, "nginx_reload_executed": false, "not_approval": true, "owner_response_accepted": false, "owner_response_received": false, "owner_response_rejected": false, "owner_review_status": "repo_only_owner_confirmation_required", "owner_role_or_team": "pending_owner_role_or_team", "production_write_authorized": false, "quarantine_written": false, "recipient_confirmed": false, "redacted_evidence_refs": [], "rejection_guards": [ "tls_private_key_or_raw_cert_payload", "certbot_account_key_or_credentials", "dns_provider_or_registrar_credential", "token_secret_cookie_session", "authorization_header_or_basic_auth", "unredacted_certbot_log_or_env_dump", "shell_history_or_private_key_path_dump", "dns_query_or_tls_probe_request", "certbot_renew_execution_request", "nginx_reload_or_route_change_request", "ssh_host_write_or_runtime_request", "production_write_or_action_button_request" ], "request_fields": [ "request_id", "domain", "control_tier", "hosts", "certificate_path_domains", "certificate_paths", "owner_role_or_team", "decision", "decision_reason", "affected_scope", "redacted_evidence_refs", "followup_owner", "rollback_owner", "maintenance_window", "validation_plan", "not_approval" ], "request_id": "domain_tls_certbot_owner_confirmation:langfuse.wooo.work", "request_sent": false, "required_owner_fields": [ "owner_role_or_team", "decision", "decision_reason", "affected_scope", "redacted_evidence_refs", "followup_owner", "rollback_owner", "maintenance_window", "validation_plan" ], "rollback_owner": "pending_rollback_owner", "runtime_gate": false, "secret_value_collection_allowed": false, "source_paths": [ "infra/ansible/roles/nginx/templates/188-internal-tools-https.conf.j2" ], "source_snapshot_ref": "docs/security/domain-tls-certbot-inventory.snapshot.json", "status": "draft_not_dispatched", "tls_certificate_path_present": true, "validation_plan": "pending_validation_plan" }, { "action_buttons_allowed": false, "affected_scope": "pending_affected_scope", "certbot_renew_authorized": false, "certbot_renew_executed": false, "certificate_path_domains": [ "sentry.wooo.work" ], "certificate_paths": [ "/etc/letsencrypt/live/sentry.wooo.work/fullchain.pem" ], "config_ids": [ "host188_all_sites", "host188_internal_tools_https" ], "confirmation_questions": [ "certificate_coverage_basis", "certificate_expiry_metadata_ref", "renewal_owner_and_method", "acme_challenge_route_owner", "postcheck_and_rollback_owner" ], "control_tier": "C0", "decision": "pending_owner_decision", "decision_reason": "pending_decision_reason", "dns_query_authorized": false, "dns_query_executed": false, "domain": "signoz.wooo.work", "followup_owner": "pending_followup_owner", "host_write_authorized": false, "hosts": [ "192.168.0.188" ], "live_paths": [ "/etc/nginx/sites-enabled/all-sites.conf", "owner_confirmation_required" ], "live_tls_probe_authorized": false, "live_tls_probe_executed": false, "maintenance_window": "pending_maintenance_window", "nginx_reload_authorized": false, "nginx_reload_executed": false, "not_approval": true, "owner_response_accepted": false, "owner_response_received": false, "owner_response_rejected": false, "owner_review_status": "repo_only_owner_confirmation_required", "owner_role_or_team": "pending_owner_role_or_team", "production_write_authorized": false, "quarantine_written": false, "recipient_confirmed": false, "redacted_evidence_refs": [], "rejection_guards": [ "tls_private_key_or_raw_cert_payload", "certbot_account_key_or_credentials", "dns_provider_or_registrar_credential", "token_secret_cookie_session", "authorization_header_or_basic_auth", "unredacted_certbot_log_or_env_dump", "shell_history_or_private_key_path_dump", "dns_query_or_tls_probe_request", "certbot_renew_execution_request", "nginx_reload_or_route_change_request", "ssh_host_write_or_runtime_request", "production_write_or_action_button_request" ], "request_fields": [ "request_id", "domain", "control_tier", "hosts", "certificate_path_domains", "certificate_paths", "owner_role_or_team", "decision", "decision_reason", "affected_scope", "redacted_evidence_refs", "followup_owner", "rollback_owner", "maintenance_window", "validation_plan", "not_approval" ], "request_id": "domain_tls_certbot_owner_confirmation:signoz.wooo.work", "request_sent": false, "required_owner_fields": [ "owner_role_or_team", "decision", "decision_reason", "affected_scope", "redacted_evidence_refs", "followup_owner", "rollback_owner", "maintenance_window", "validation_plan" ], "rollback_owner": "pending_rollback_owner", "runtime_gate": false, "secret_value_collection_allowed": false, "source_paths": [ "infra/ansible/roles/nginx/templates/188-all-sites.conf.j2", "infra/ansible/roles/nginx/templates/188-internal-tools-https.conf.j2" ], "source_snapshot_ref": "docs/security/domain-tls-certbot-inventory.snapshot.json", "status": "draft_not_dispatched", "tls_certificate_path_present": true, "validation_plan": "pending_validation_plan" }, { "action_buttons_allowed": false, "affected_scope": "pending_affected_scope", "certbot_renew_authorized": false, "certbot_renew_executed": false, "certificate_path_domains": [ "www.tsenyang.com" ], "certificate_paths": [ "/etc/letsencrypt/live/www.tsenyang.com/fullchain.pem" ], "config_ids": [ "host188_all_sites" ], "confirmation_questions": [ "certificate_coverage_basis", "certificate_expiry_metadata_ref", "renewal_owner_and_method", "acme_challenge_route_owner", "postcheck_and_rollback_owner" ], "control_tier": "C0", "decision": "pending_owner_decision", "decision_reason": "pending_decision_reason", "dns_query_authorized": false, "dns_query_executed": false, "domain": "tsenyang.com", "followup_owner": "pending_followup_owner", "host_write_authorized": false, "hosts": [ "192.168.0.188" ], "live_paths": [ "/etc/nginx/sites-enabled/all-sites.conf" ], "live_tls_probe_authorized": false, "live_tls_probe_executed": false, "maintenance_window": "pending_maintenance_window", "nginx_reload_authorized": false, "nginx_reload_executed": false, "not_approval": true, "owner_response_accepted": false, "owner_response_received": false, "owner_response_rejected": false, "owner_review_status": "repo_only_owner_confirmation_required", "owner_role_or_team": "pending_owner_role_or_team", "production_write_authorized": false, "quarantine_written": false, "recipient_confirmed": false, "redacted_evidence_refs": [], "rejection_guards": [ "tls_private_key_or_raw_cert_payload", "certbot_account_key_or_credentials", "dns_provider_or_registrar_credential", "token_secret_cookie_session", "authorization_header_or_basic_auth", "unredacted_certbot_log_or_env_dump", "shell_history_or_private_key_path_dump", "dns_query_or_tls_probe_request", "certbot_renew_execution_request", "nginx_reload_or_route_change_request", "ssh_host_write_or_runtime_request", "production_write_or_action_button_request" ], "request_fields": [ "request_id", "domain", "control_tier", "hosts", "certificate_path_domains", "certificate_paths", "owner_role_or_team", "decision", "decision_reason", "affected_scope", "redacted_evidence_refs", "followup_owner", "rollback_owner", "maintenance_window", "validation_plan", "not_approval" ], "request_id": "domain_tls_certbot_owner_confirmation:tsenyang.com", "request_sent": false, "required_owner_fields": [ "owner_role_or_team", "decision", "decision_reason", "affected_scope", "redacted_evidence_refs", "followup_owner", "rollback_owner", "maintenance_window", "validation_plan" ], "rollback_owner": "pending_rollback_owner", "runtime_gate": false, "secret_value_collection_allowed": false, "source_paths": [ "infra/ansible/roles/nginx/templates/188-all-sites.conf.j2" ], "source_snapshot_ref": "docs/security/domain-tls-certbot-inventory.snapshot.json", "status": "draft_not_dispatched", "tls_certificate_path_present": true, "validation_plan": "pending_validation_plan" } ], "rejection_guards": [ "tls_private_key_or_raw_cert_payload", "certbot_account_key_or_credentials", "dns_provider_or_registrar_credential", "token_secret_cookie_session", "authorization_header_or_basic_auth", "unredacted_certbot_log_or_env_dump", "shell_history_or_private_key_path_dump", "dns_query_or_tls_probe_request", "certbot_renew_execution_request", "nginx_reload_or_route_change_request", "ssh_host_write_or_runtime_request", "production_write_or_action_button_request" ], "request_fields": [ "request_id", "domain", "control_tier", "hosts", "certificate_path_domains", "certificate_paths", "owner_role_or_team", "decision", "decision_reason", "affected_scope", "redacted_evidence_refs", "followup_owner", "rollback_owner", "maintenance_window", "validation_plan", "not_approval" ], "required_owner_fields": [ "owner_role_or_team", "decision", "decision_reason", "affected_scope", "redacted_evidence_refs", "followup_owner", "rollback_owner", "maintenance_window", "validation_plan" ], "schema_version": "domain_tls_certbot_owner_confirmation_request_v1", "source_inventory_schema_version": "domain_tls_certbot_inventory_v1", "source_inventory_status": "repo_only_from_nginx_source_of_truth", "status": "owner_confirmation_request_ready_not_dispatched", "summary": { "action_button_count": 0, "c0_owner_confirmation_request_count": 4, "c1_owner_confirmation_request_count": 0, "certbot_renew_authorized_count": 0, "certbot_renew_executed_count": 0, "confirmation_question_count": 5, "dns_query_authorized_count": 0, "dns_query_executed_count": 0, "host_write_authorized_count": 0, "live_tls_probe_authorized_count": 0, "live_tls_probe_executed_count": 0, "nginx_reload_authorized_count": 0, "nginx_reload_executed_count": 0, "owner_confirmation_request_count": 4, "owner_response_accepted_count": 0, "owner_response_received_count": 0, "owner_response_rejected_count": 0, "quarantined_payload_count": 0, "recipient_confirmed_count": 0, "rejection_guard_count": 12, "request_field_count": 16, "request_sent_count": 0, "required_owner_field_count": 9, "runtime_gate_count": 0 } }