[
https://issues.apache.org/jira/browse/IGNITE-28867?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anton Vinogradov updated IGNITE-28867:
--------------------------------------
Description:
Rotate TLS certificates and trust on running nodes without closing established
connections. An external source supplies the material; Ignite loads it on
command or, when enabled, before expiry.
h3. Deliverables
# IGNITE-29208: preserve peer information on wrapped SSL engines. Already
merged in [PR #13750|https://github.com/apache/ignite/pull/13750].
# IGNITE-29209: let a factory explicitly reload its material while preserving
existing cached creation behavior.
# IGNITE-29210: provide authorized manual reload for the four TCP transports,
per-node results and audit.
# IGNITE-29211: add automatic renewal, necessary expiry checks, retries and
failure monitoring.
# IGNITE-29212: extend the same operation to HTTPS, preserving existing Jetty
TLS behavior.
h3. Order and completeness
Merge IGNITE-29209 before IGNITE-29210. Renewal and HTTP can follow in either
order. The ticket merged second includes the combined HTTPS renewal test and
documentation. Refresh dependent PRs after each prerequisite merges; their
diffs must contain only their remaining changes.
Each ticket defines its required results and acceptance checks. Its PR explains
the implementation and records verification. Confirm key/trust rotation on all
supported transports, automatic renewal, established connections, failure
recovery and monitoring.
Certificate issuance, live node reconfiguration, a separate status command,
certificate inventory and universal support for arbitrary factories are outside
this scope. Local loading success alone does not establish peer trust.
was:
Administrators can replace TLS certificates and trust stores on running nodes.
Another system delivers the certificates. With automatic renewal, a node can
load a replacement before the earliest chain expires. Existing connections stay
open.
h3. Scope and merge order
# IGNITE-29208 preserves the peer address on wrapped SSL engines. [PR
#13750|https://github.com/apache/ignite/pull/13750] is merged.
# IGNITE-29209 adds the protected {{init()}} method for replacing a factory’s
cached SSL context. IGNITE-29210 uses it for the reload command and adds status
reporting.
# IGNITE-29211 adds scheduled renewal and retries. IGNITE-29212 extends the
commands to HTTP REST. These two parts can merge in either order after
IGNITE-29210.
After each prerequisite is squash-merged, update the dependent branches and
verify that each PR diff against master contains only its remaining changes.
Once both HTTP and renewal are present, include the [joint HTTPS renewal test
and
documentation|https://github.com/anton-vinogradov/ignite/commit/34c84b8dee8043b33878b2510c8f8321afd25694]
once in the PR merged second.
h3. Completion
Verify rotation on new mutual TLS and HTTPS connections, continuity of
established connections, and recovery after an invalid replacement. Each PR
records its checks. See the [rollout
guide|https://github.com/anton-vinogradov/ignite/blob/ignite-29210/docs/_docs/security/ssl-tls.adoc#upgrading-certificates]
for the order of peer trust and certificate updates.
> [Umbrella] TLS certificate reload and automatic renewal
> -------------------------------------------------------
>
> Key: IGNITE-28867
> URL: https://issues.apache.org/jira/browse/IGNITE-28867
> Project: Ignite
> Issue Type: Task
> Reporter: Mikhail Petrov
> Assignee: Anton Vinogradov
> Priority: Major
> Labels: ise
> Fix For: 2.19
>
> Time Spent: 7h
> Remaining Estimate: 0h
>
> Rotate TLS certificates and trust on running nodes without closing
> established connections. An external source supplies the material; Ignite
> loads it on command or, when enabled, before expiry.
> h3. Deliverables
> # IGNITE-29208: preserve peer information on wrapped SSL engines. Already
> merged in [PR #13750|https://github.com/apache/ignite/pull/13750].
> # IGNITE-29209: let a factory explicitly reload its material while preserving
> existing cached creation behavior.
> # IGNITE-29210: provide authorized manual reload for the four TCP transports,
> per-node results and audit.
> # IGNITE-29211: add automatic renewal, necessary expiry checks, retries and
> failure monitoring.
> # IGNITE-29212: extend the same operation to HTTPS, preserving existing Jetty
> TLS behavior.
> h3. Order and completeness
> Merge IGNITE-29209 before IGNITE-29210. Renewal and HTTP can follow in either
> order. The ticket merged second includes the combined HTTPS renewal test and
> documentation. Refresh dependent PRs after each prerequisite merges; their
> diffs must contain only their remaining changes.
> Each ticket defines its required results and acceptance checks. Its PR
> explains the implementation and records verification. Confirm key/trust
> rotation on all supported transports, automatic renewal, established
> connections, failure recovery and monitoring.
> Certificate issuance, live node reconfiguration, a separate status command,
> certificate inventory and universal support for arbitrary factories are
> outside this scope. Local loading success alone does not establish peer trust.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)