Verify certificate replacement for composed listeners (#224) #237

Merged
kilo merged 2 commits from issue-224-certificate-lifecycle into develop 2026-10-30 10:55:21 +00:00
Member

Scope

Refs #224. Explicit POSIX SIGHUP reload for composed HTTP and worker TLS listeners validates certificate chain, hostname, expiry and key pair in memory before switching; invalid replacement retains active contexts. Issuance, renewal scheduling, DNS and keys remain external operator responsibilities. No new issuer, scheduler or trust-store mutation. Tier B and verified origin migration are not implemented; no deployed renewal hook is claimed.

Validation

  • Focused TLS/control tests: 65 passed, including real-process dual-listener reload with a deliberately stalled HTTP TLS handshake, rejected replacement, and persistent connection.
  • uv sync --only-dev; PYTHONHASHSEED=0 make check: 3,186 passed, 18 skipped, basedpyright 0/0; standalone uv run basedpyright, make package-check and whitespace checks passed on current source.
  • Synthetic certificates only. No live Windows, public issuance, deployed renewal or LAN verification claimed.

Review

Review #9 requested changes for an unbounded HTTP handshake blocking reload. Remediation bounds the handshake and adds a regression test. Fresh complete exact-HEAD GPT-6.1 Sol High review #10 and current-HEAD CI are required; previous #224 review ordinals remain consumed.

## Scope Refs #224. Explicit POSIX SIGHUP reload for composed HTTP and worker TLS listeners validates certificate chain, hostname, expiry and key pair in memory before switching; invalid replacement retains active contexts. Issuance, renewal scheduling, DNS and keys remain external operator responsibilities. No new issuer, scheduler or trust-store mutation. Tier B and verified origin migration are not implemented; no deployed renewal hook is claimed. ## Validation - Focused TLS/control tests: 65 passed, including real-process dual-listener reload with a deliberately stalled HTTP TLS handshake, rejected replacement, and persistent connection. - `uv sync --only-dev`; `PYTHONHASHSEED=0 make check`: 3,186 passed, 18 skipped, basedpyright 0/0; standalone `uv run basedpyright`, `make package-check` and whitespace checks passed on current source. - Synthetic certificates only. No live Windows, public issuance, deployed renewal or LAN verification claimed. ## Review Review #9 requested changes for an unbounded HTTP handshake blocking reload. Remediation bounds the handshake and adds a regression test. Fresh complete exact-HEAD GPT-6.1 Sol High review #10 and current-HEAD CI are required; previous #224 review ordinals remain consumed.
Verify TLS certificate reloads (#224)
All checks were successful
ci / check (pull_request) Successful in 11m41s
ea4328f5b9
Author
Member

Reserving imminent independent complete security/correctness/UX review #9/10 for #224. Frozen HEAD ea4328f5b9c75c07cdd232aa7c26bf9b5e8bbcdd, base/merge-base 98ae0e4e6cbeac66d098c194aa914fafb57a1460. Previous issue-wide review #1–8 remain consumed. Requested fresh native pr-reviewer, GPT-6.1 Sol/openai/high. This delivery concerns opt-in verified certificate reload, not tier B or origin migration. CI #3383 is running; no acceptance implied by reservation.

Reserving imminent independent complete security/correctness/UX review #9/10 for #224. Frozen HEAD `ea4328f5b9c75c07cdd232aa7c26bf9b5e8bbcdd`, base/merge-base `98ae0e4e6cbeac66d098c194aa914fafb57a1460`. Previous issue-wide review #1–8 remain consumed. Requested fresh native `pr-reviewer`, GPT-6.1 Sol/openai/high. This delivery concerns opt-in verified certificate reload, not tier B or origin migration. CI #3383 is running; no acceptance implied by reservation.
Author
Member

Independent whole-PR review #9/10: REQUEST_CHANGES, HEAD ea4328f5b9c75c07cdd232aa7c26bf9b5e8bbcdd, base/merge-base 98ae0e4e6cbeac66d098c194aa914fafb57a1460, fresh native pr-reviewer session ses_e73adc43bffedY1bBiYxEQP114, GPT-6.1 Sol/openai/high requested; backend identity unobserved. P2: an unauthenticated HTTP client can stall the synchronous TLS handshake indefinitely, blocking HTTP service_actions and therefore certificate reload for both listeners. Reviewer requests a bounded handshake plus real-process test holding an incomplete handshake open during reload. Reviewer did not run tests due to tool permissions. Remediation requires new HEAD and final available whole-PR review #10; review #9 is consumed and is not an approval.

Independent whole-PR review #9/10: **REQUEST_CHANGES**, HEAD `ea4328f5b9c75c07cdd232aa7c26bf9b5e8bbcdd`, base/merge-base `98ae0e4e6cbeac66d098c194aa914fafb57a1460`, fresh native `pr-reviewer` session `ses_e73adc43bffedY1bBiYxEQP114`, GPT-6.1 Sol/openai/high requested; backend identity unobserved. P2: an unauthenticated HTTP client can stall the synchronous TLS handshake indefinitely, blocking HTTP `service_actions` and therefore certificate reload for both listeners. Reviewer requests a bounded handshake plus real-process test holding an incomplete handshake open during reload. Reviewer did not run tests due to tool permissions. Remediation requires new HEAD and final available whole-PR review #10; review #9 is consumed and is not an approval.
Bound TLS handshake before reload (#224)
All checks were successful
ci / check (pull_request) Successful in 11m56s
89f39161e4
Author
Member

Reserving imminent independent complete security/correctness/UX review #10/10 for #224. Frozen HEAD 89f39161e42d6a788edf3a3d6d85ba880005777a, base/merge-base 98ae0e4e6cbeac66d098c194aa914fafb57a1460. Review #9 REQUEST_CHANGES and previous #1–8 remain consumed; remediation limits TLS handshake duration and proves reload under a stalled peer. Requested fresh native pr-reviewer, GPT-6.1 Sol/openai/high. This is the final default review ordinal; no exception has been established. Current-head CI #3384 running.

Reserving imminent independent complete security/correctness/UX review #10/10 for #224. Frozen HEAD `89f39161e42d6a788edf3a3d6d85ba880005777a`, base/merge-base `98ae0e4e6cbeac66d098c194aa914fafb57a1460`. Review #9 REQUEST_CHANGES and previous #1–8 remain consumed; remediation limits TLS handshake duration and proves reload under a stalled peer. Requested fresh native `pr-reviewer`, GPT-6.1 Sol/openai/high. This is the final default review ordinal; no exception has been established. Current-head CI #3384 running.
Author
Member

Independent complete security/correctness/UX review #10/10: APPROVE, findings [], limitations [], exact HEAD 89f39161e42d6a788edf3a3d6d85ba880005777a, base/merge-base 98ae0e4e6cbeac66d098c194aa914fafb57a1460. Fresh native pr-reviewer session ses_e7398c2d0ffe3Y6ynokXoxzdKK, requested GPT-6.1 Sol/openai/high; backend runtime identity unobserved. Full diff, TLS verification and reload, bounded handshake, existing authentication/CA boundaries, failure/restart, deployment and UX assessed; reviewer did not run suites. Prior #9 REQUEST_CHANGES and #1–8 remain consumed. CI #3384 remains required. This approval does not establish deployed renewal, tier B, origin migration or #224 completion. Default #224 review ceiling is now exhausted; no extension is implied.

Independent complete security/correctness/UX review #10/10: **APPROVE**, findings `[]`, limitations `[]`, exact HEAD `89f39161e42d6a788edf3a3d6d85ba880005777a`, base/merge-base `98ae0e4e6cbeac66d098c194aa914fafb57a1460`. Fresh native `pr-reviewer` session `ses_e7398c2d0ffe3Y6ynokXoxzdKK`, requested GPT-6.1 Sol/openai/high; backend runtime identity unobserved. Full diff, TLS verification and reload, bounded handshake, existing authentication/CA boundaries, failure/restart, deployment and UX assessed; reviewer did not run suites. Prior #9 REQUEST_CHANGES and #1–8 remain consumed. CI #3384 remains required. This approval does not establish deployed renewal, tier B, origin migration or #224 completion. Default #224 review ceiling is now exhausted; no extension is implied.
kilo merged commit 209f7d39f3 into develop 2026-10-30 10:55:21 +00:00
Sign in to join this conversation.
No description provided.