Skip to content

Phase 4: node certificate rotation endpoint - #38

Merged
Lothnic merged 1 commit into
mainfrom
phase4-cert-rotation
Aug 3, 2026
Merged

Phase 4: node certificate rotation endpoint#38
Lothnic merged 1 commit into
mainfrom
phase4-cert-rotation

Conversation

@Lothnic

@Lothnic Lothnic commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #36 (P0 mTLS). Base is p0-mtls-gate, so this PR shows only the rotation diff. Merge #36 first (or retarget to main after #36 lands).

What

POST /control/v1/nodes/{node_id}/certificate re-issues a cert for the node's registered public key, gated by the current cert (verify_node_identity) and refused for revoked nodes.

Safety

Safe to expose: the reissued cert is bound to the on-record public key, so a header-spoofer who lacks the private key gains nothing. Both old and new certs verify (same CA, same SAN) until the old one expires, so there's no chicken-and-egg during rollover.

Pairs with meridian-node phase4-cert-rotation (the agent renewal loop).

Tests

pytest tests/control -q → 28 passed (+3: reissue-for-same-key, reject-revoked, end-to-end rotation through the enforced-mTLS path); ruff + mypy clean.

🤖 Generated with Claude Code

POST /control/v1/nodes/{node_id}/certificate re-issues a cert for the node's
registered public key, gated by the current cert (verify_node_identity) and
refused for revoked nodes. Safe to expose: the new cert is bound to the
on-record public key, so only the holder of that private key can use it.
Pairs with the meridian-node rotation loop.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 3, 2026 12:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Lothnic
Lothnic changed the base branch from p0-mtls-gate to main August 3, 2026 16:08
@Lothnic
Lothnic merged commit 4798f42 into main Aug 3, 2026
@Lothnic
Lothnic deleted the phase4-cert-rotation branch August 3, 2026 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants