Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
358 commits
Select commit Hold shift + click to select a range
e11f5b2
IGNITE-29209 Remove unused SSL context import
anton-vinogradov Oct 27, 2026
a4b484c
IGNITE-29210 Use the bundle factory contract directly
anton-vinogradov Oct 27, 2026
4dcd204
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Oct 27, 2026
544fea3
IGNITE-29211 Load renewal material through the bundle factory
anton-vinogradov Oct 27, 2026
3527c8f
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 27, 2026
f46b32a
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 27, 2026
9fc0b69
IGNITE-29210 Clarify the bundle ownership test
anton-vinogradov Oct 27, 2026
e0dd39e
IGNITE-29209 Clarify key material ownership and factory customization
anton-vinogradov Oct 27, 2026
015fa86
IGNITE-29211 Distinguish unusable keys from missing renewal metadata
anton-vinogradov Oct 27, 2026
e28ac2b
IGNITE-29210 Reject unusable key chains and retain communication owne…
anton-vinogradov Oct 27, 2026
c2e8dba
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Oct 27, 2026
6a7c34e
IGNITE-29211 Keep reload contract within the line limit
anton-vinogradov Oct 27, 2026
f30d2d4
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 27, 2026
5fa46cb
IGNITE-29209 State that keys without an X.509 chain are never presented
anton-vinogradov Oct 27, 2026
e761ac1
IGNITE-29210 Warn at startup about key material that reload rejects
anton-vinogradov Oct 27, 2026
09fb08d
IGNITE-29211 Keep IGNITE-29210 contract wording and define the renewa…
anton-vinogradov Oct 27, 2026
c7f4aae
IGNITE-29209 Make SSL API tests state one guarantee each
anton-vinogradov Oct 27, 2026
4805c13
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Oct 27, 2026
afca753
IGNITE-29210 Make reload tests state one guarantee each
anton-vinogradov Oct 27, 2026
730195b
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 27, 2026
e5f76d5
IGNITE-29210 Point the reload rejection paragraph to the status table
anton-vinogradov Oct 27, 2026
5bfffb5
IGNITE-29211 Make renewal tests state one guarantee each
anton-vinogradov Oct 27, 2026
5f834c8
IGNITE-29211 Say plainly when the renewal window opens
anton-vinogradov Oct 27, 2026
971c067
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 27, 2026
8a99c99
IGNITE-29209 State how JKS lists a key without a chain
anton-vinogradov Oct 27, 2026
92fa2c2
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Oct 27, 2026
ef88ec3
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 27, 2026
935b2ba
IGNITE-29211 Order renewal refusals as the code checks them and check…
anton-vinogradov Oct 27, 2026
a1bb15f
IGNITE-29209 Preserve aliases of keys with empty certificate chains
anton-vinogradov Oct 28, 2026
bbce690
IGNITE-29210 Verify CA overlap and reject missing certificate chains
anton-vinogradov Oct 28, 2026
d8c14a3
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Oct 28, 2026
fa20c77
IGNITE-29210 Clarify that bundle metadata contains aliases and chains
anton-vinogradov Oct 28, 2026
878ae6a
IGNITE-29211 Control expiry time in renewal logging test
anton-vinogradov Oct 28, 2026
f4e5306
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 28, 2026
4d7ccc7
IGNITE-29210 Disambiguate test node configuration callback
anton-vinogradov Oct 28, 2026
d396f47
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 28, 2026
b34c6db
IGNITE-29210 Describe validation of reported key entries
anton-vinogradov Oct 28, 2026
cf64c39
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 28, 2026
077f64a
IGNITE-29211 Clarify certificate requirements at startup
anton-vinogradov Oct 28, 2026
1c1d9c9
IGNITE-29211 Renew reported TLS certificate chains
anton-vinogradov Oct 28, 2026
5f0c03f
IGNITE-29209 Report only nonempty X.509 key chains
anton-vinogradov Oct 28, 2026
25bb76d
IGNITE-29210 Validate available TLS certificate chains
anton-vinogradov Oct 28, 2026
66e3fc1
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Oct 28, 2026
bf1bef8
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 28, 2026
6dbe0c8
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 28, 2026
384d676
IGNITE-29210 Name reported chains in reload test guarantees
anton-vinogradov Oct 28, 2026
c240cab
IGNITE-29211 Align renewal documentation with reported chains
anton-vinogradov Oct 28, 2026
da73b61
IGNITE-29211 Clarify scope of omitted certificate entries
anton-vinogradov Oct 28, 2026
a883cc3
IGNITE-29211 Keep renewal error within line limit
anton-vinogradov Oct 28, 2026
f7e62f6
IGNITE-29209 Remove optional key manager hook
anton-vinogradov Oct 28, 2026
021fd83
IGNITE-29210 Document custom SSL bundle construction
anton-vinogradov Oct 28, 2026
7b575ed
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Oct 28, 2026
de928fe
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 28, 2026
89d0e7e
IGNITE-29209 Preserve SSL diagnostics without an extra exception
anton-vinogradov Oct 29, 2026
8a2ad04
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Oct 29, 2026
bfd9416
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 29, 2026
6459a46
IGNITE-29209 Allow factory details in .NET SSL error assertions
anton-vinogradov Oct 29, 2026
754cc1e
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Oct 29, 2026
ee1c1e2
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 29, 2026
71459c7
IGNITE-29210 Clarify SSL reload certificate checks
anton-vinogradov Oct 29, 2026
c35ec73
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Oct 29, 2026
e9a90b4
IGNITE-29210 Wait for consistency cancellation status cleanup in tests
anton-vinogradov Nov 1, 2026
6df7a90
Merge ignite-29210 into ignite-29211
anton-vinogradov Nov 1, 2026
ba1dbcf
IGNITE-29209 Let SSL factories own initialized bundles
anton-vinogradov Nov 3, 2026
22e3ec5
IGNITE-29209 Clarify initialized factory lifetime
anton-vinogradov Nov 3, 2026
f3b80a0
IGNITE-29210 Reload the state owned by SSL factories
anton-vinogradov Nov 3, 2026
f869900
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Nov 3, 2026
4c35f32
IGNITE-29211 Renew the material owned by the SSL factory
anton-vinogradov Nov 3, 2026
5a30822
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Nov 3, 2026
f6b57b3
IGNITE-29209 Keep initialization tests and helpers within API scope
anton-vinogradov Nov 3, 2026
9b80a43
IGNITE-29210 Remove test-only SSL provider context accessor
anton-vinogradov Nov 3, 2026
dec35ba
IGNITE-29211 Remove test-only SSL provider forwarding
anton-vinogradov Nov 3, 2026
de9fcf9
IGNITE-29210 Keep consistency cancellation fix in its own branch
anton-vinogradov Nov 3, 2026
c424767
IGNITE-29210 Merge reviewed factory initialization foundation
anton-vinogradov Nov 3, 2026
34b1f7a
IGNITE-29211 Merge reviewed manual reload foundation
anton-vinogradov Nov 3, 2026
79323d1
IGNITE-29211 Honor overridden SSL renewal settings
anton-vinogradov Nov 3, 2026
19c2dd7
IGNITE-29209 Return accepted SSL context snapshots
anton-vinogradov Nov 3, 2026
2eab286
IGNITE-29210 Keep SSL forwarding in the node provider
anton-vinogradov Nov 3, 2026
4daf24c
IGNITE-29211 Merge snapshot factory and node SSL forwarding
anton-vinogradov Nov 3, 2026
f07e080
IGNITE-29209 Initialize key managers with loaded key material
anton-vinogradov Nov 3, 2026
40b2d6e
IGNITE-29210 Merge initialized key material values
anton-vinogradov Nov 3, 2026
c1f2255
IGNITE-29211 Merge initialized key material values
anton-vinogradov Nov 3, 2026
2589424
IGNITE-29209 Keep SSL bundle construction as a protected hook
anton-vinogradov Nov 3, 2026
ecdc378
IGNITE-29210 Use the protected SSL loading hook in tests
anton-vinogradov Nov 3, 2026
69db941
IGNITE-29211 Use the protected SSL loading hook in tests
anton-vinogradov Nov 3, 2026
1b17a46
IGNITE-29209 Clarify prepared key material hook contract
anton-vinogradov Nov 3, 2026
16f815d
IGNITE-29210 Merge prepared key material hook documentation
anton-vinogradov Nov 3, 2026
5c5aebe
IGNITE-29211 Merge prepared key material hook documentation
anton-vinogradov Nov 3, 2026
f77be52
IGNITE-29210 Simplify SSL test material and factory hooks
anton-vinogradov Nov 3, 2026
ea50365
IGNITE-29211 Test renewal through factories and snapshot status time
anton-vinogradov Nov 3, 2026
c5c8e48
IGNITE-29210 Document direct SSL bundle loading hooks
anton-vinogradov Nov 3, 2026
3661fc3
IGNITE-29211 Adapt node test hooks to checked SSL loading
anton-vinogradov Nov 3, 2026
06489a8
IGNITE-29209 Build SSL bundles directly from loaded stores
anton-vinogradov Nov 3, 2026
4a7ce7c
Merge IGNITE-29209 direct bundle loading into IGNITE-29210
anton-vinogradov Nov 3, 2026
f5a9a6f
Merge IGNITE-29210 direct bundle loading into IGNITE-29211
anton-vinogradov Nov 3, 2026
d9fc2fc
IGNITE-29210 Use a clear certificate alias name in CLI test
anton-vinogradov Nov 3, 2026
0e76a9d
Merge commit 'd9fc2fcea5309921293c1885fdf5b12aeb02ed0e' into ignite-2…
anton-vinogradov Nov 3, 2026
756e613
IGNITE-29210 Add certificate generation dependency to CLI tests
anton-vinogradov Nov 3, 2026
a4bd1b1
Merge commit '756e613f719eb8a8d8cae44602c2b39f7848a4a6' into ignite-2…
anton-vinogradov Nov 3, 2026
f004af6
IGNITE-29209 Keep source parameter validation in the store factory
anton-vinogradov Nov 3, 2026
a566a35
Merge ignite-29209 parameter hook cleanup into ignite-29210
anton-vinogradov Nov 3, 2026
7963fe0
Merge ignite-29210 parameter hook cleanup into ignite-29211
anton-vinogradov Nov 3, 2026
07f3f4b
IGNITE-29210 Clarify custom factory validation migration
anton-vinogradov Nov 3, 2026
820e07c
Merge ignite-29210 custom factory migration documentation
anton-vinogradov Nov 3, 2026
d58cd6a
IGNITE-29210 Reject SSL contexts that cannot supply TCP sockets
anton-vinogradov Nov 4, 2026
8e36bc9
IGNITE-29211 Validate the renewal window and discard attempts during …
anton-vinogradov Nov 4, 2026
215240a
Merge branch 'ignite-29210' into ignite-29211
anton-vinogradov Nov 4, 2026
c20c22e
IGNITE-29209 Limit explicit TLS initialization to factory subclasses
anton-vinogradov Nov 4, 2026
dfe2f48
IGNITE-29210 Keep factory snapshot and reload access inside the node
anton-vinogradov Nov 4, 2026
b8980a0
IGNITE-29211 Use internal factory snapshots when planning TLS renewal
anton-vinogradov Nov 4, 2026
3f915d6
IGNITE-29210 Keep reload diagnostics inside the node and report provi…
anton-vinogradov Nov 4, 2026
6bca809
IGNITE-29209 Preserve keyless client factories and document snapshot use
anton-vinogradov Nov 4, 2026
a9e61a8
IGNITE-29210 Remove the obsolete connector import
anton-vinogradov Nov 4, 2026
7c5984e
Merge IGNITE-29209 compatibility and migration changes into manual re…
anton-vinogradov Nov 4, 2026
048e40e
IGNITE-29210 Keep reconnect test independent of certificate generation
anton-vinogradov Nov 4, 2026
f4e1d28
IGNITE-29211 Keep renewal inside the node and verify its lifecycle
anton-vinogradov Nov 4, 2026
ff4573a
Merge reviewed manual TLS reload into IGNITE-29211
anton-vinogradov Nov 4, 2026
500089e
IGNITE-29209 Clarify custom TLS configuration and context reads
anton-vinogradov Nov 4, 2026
11c0b8c
IGNITE-29210 Merge factory documentation and explain reload checks on…
anton-vinogradov Nov 4, 2026
eee3041
IGNITE-29211 Count certificate source failures while renewal is running
anton-vinogradov Nov 4, 2026
79dfcce
Merge commit '11c0b8cda272bb1a498bceb00b66e8b0c7281607' into ignite-2…
anton-vinogradov Nov 4, 2026
96ff5ef
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Nov 4, 2026
0983f4c
IGNITE-29209 Verify that concurrent SSL reloads publish in order
anton-vinogradov Nov 4, 2026
e57a63a
IGNITE-29210 Cover preinitialized factories at transport registration
anton-vinogradov Nov 4, 2026
3560648
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Nov 4, 2026
6822aa5
IGNITE-29209 Shorten SSL factory hook Javadoc
anton-vinogradov Nov 4, 2026
1eff18f
Merge commit '3560648c' into ignite-29211
anton-vinogradov Nov 4, 2026
6a6cb7d
IGNITE-29210 Distinguish initial load retries from TLS replacement
anton-vinogradov Nov 4, 2026
5888cb2
IGNITE-29211 Clarify renewal settings and make the node test wait for…
anton-vinogradov Nov 4, 2026
63019fa
Merge commit '6a6cb7d0' into ignite-29211
anton-vinogradov Nov 4, 2026
dcb1e82
IGNITE-29211 Keep renewal tests focused on configured settings
anton-vinogradov Nov 4, 2026
bafc004
IGNITE-29211 Remove unused test mock import
anton-vinogradov Nov 4, 2026
32bee26
IGNITE-29211 Check renewal with an interrupted source thread
anton-vinogradov Nov 4, 2026
de80327
Merge remote-tracking branch 'refs/remotes/apache-r8/master' into ign…
anton-vinogradov Nov 4, 2026
38394c2
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Nov 4, 2026
7b1c2fb
IGNITE-29209 Clarify custom SSL factory material and protocol require…
anton-vinogradov Nov 4, 2026
f45312f
IGNITE-29210 Clarify reload requirements and bound failure timestamps
anton-vinogradov Nov 4, 2026
3fc01c6
Merge commit 'f45312f5f481b22653f5fc93bc70e6488fb7f972' into ignite-2…
anton-vinogradov Nov 4, 2026
6b6cb10
Merge branch 'ignite-29209' into ignite-29210
anton-vinogradov Nov 4, 2026
e29bfc9
IGNITE-29209 Mark the key password array nullable
anton-vinogradov Nov 4, 2026
a3a3d48
Merge commit '6b6cb108a00a0048f0a09c9ce77eb85617e33e8a' into ignite-2…
anton-vinogradov Nov 4, 2026
a8d6d1f
IGNITE-29209 Limit explicit factory initialization to the SSL context
anton-vinogradov Nov 5, 2026
aacfde5
Merge remote-tracking branch 'refs/remotes/apache-init-minimal/master…
anton-vinogradov Nov 5, 2026
c4a9441
IGNITE-29209 Remove unused SSLContext import
anton-vinogradov Nov 5, 2026
4410ba4
IGNITE-29209 Check the initialization exception directly
anton-vinogradov Nov 5, 2026
fbff93f
IGNITE-29209 Retain the protected SSL context cache
anton-vinogradov Nov 5, 2026
7d9331f
IGNITE-29209 Keep the first fix scoped to explicit SSL context reload
anton-vinogradov Nov 5, 2026
b86cc22
IGNITE-29209 Narrow the explicit SSL initialization contract
anton-vinogradov Nov 5, 2026
ef19a92
IGNITE-29209 Test SSL cache overrides separately
anton-vinogradov Nov 5, 2026
460d6b3
IGNITE-29209 Pause SSL init at key store open in test
anton-vinogradov Nov 5, 2026
99917c9
IGNITE-29209 Test the outcomes of explicit SSL initialization
anton-vinogradov Nov 5, 2026
0d8a872
IGNITE-29209 Drop the direct SSL cache mutation test
anton-vinogradov Nov 5, 2026
0a4d83a
Merge remote-tracking branch 'refs/remotes/apache/master' into ignite…
anton-vinogradov Nov 6, 2026
c108148
IGNITE-29256 Use the current SSL context for new TCP connections
anton-vinogradov Nov 6, 2026
7ae2081
IGNITE-29256 Keep Javadoc focused on transport changes
anton-vinogradov Nov 6, 2026
34da982
IGNITE-29256 Simplify added Javadoc
anton-vinogradov Nov 6, 2026
bca5874
IGNITE-29256 Remove unnecessary line breaks
anton-vinogradov Nov 6, 2026
1bc5dad
IGNITE-29256 Simplify discovery SSL socket handling
anton-vinogradov Nov 6, 2026
d654ae8
IGNITE-29256 Verify ordinary discovery factories retain their context
anton-vinogradov Nov 6, 2026
3d9112b
IGNITE-29256 Simplify SSL factory wiring
anton-vinogradov Nov 6, 2026
d697adb
IGNITE-29256 Prepare REST protocol filters before port retries
anton-vinogradov Nov 6, 2026
ea0071a
IGNITE-29256 Use the current context from every SSL factory
anton-vinogradov Nov 6, 2026
7674cb5
IGNITE-29256 Preserve SSL filter call formatting
anton-vinogradov Nov 6, 2026
9b89ee0
IGNITE-29256 Reuse discovery SSL enablement flag
anton-vinogradov Nov 6, 2026
77d95c5
IGNITE-29256 Use the SSL context factory directly in discovery
anton-vinogradov Nov 6, 2026
3b7d641
IGNITE-29256 Remove redundant discovery comments
anton-vinogradov Nov 6, 2026
c71769a
IGNITE-29256 Validate discovery SSL with an unconnected socket
anton-vinogradov Nov 6, 2026
cc1a169
IGNITE-29256 Keep startup SSL validation focused on socket creation
anton-vinogradov Nov 6, 2026
490abbe
IGNITE-29256 Explain startup SSL socket validation
anton-vinogradov Nov 6, 2026
722fe71
IGNITE-29256 Use a single SSL filter constructor
anton-vinogradov Nov 6, 2026
50ae47e
IGNITE-29256 Pass SSL factories directly and refresh thin-client conn…
anton-vinogradov Nov 6, 2026
dc3852e
IGNITE-29256 Pass the thin client SSL factory directly to NIO
anton-vinogradov Nov 6, 2026
9d04c90
IGNITE-29256 Preserve discovery retries and count early SSL rejections
anton-vinogradov Nov 6, 2026
46a0f4f
IGNITE-29256 Make TLS test scenarios explicit
anton-vinogradov Nov 6, 2026
f6cefca
IGNITE-29256 Use current timeout API in SSL tests
anton-vinogradov Nov 7, 2026
9755920
IGNITE-29256 Drop unnecessary SSL test settings
anton-vinogradov Nov 7, 2026
ea65b2d
IGNITE-29256 Separate NIO recovery and rejection tests
anton-vinogradov Nov 7, 2026
0cc3ef1
IGNITE-29256 Clarify SSL factory recovery test name
anton-vinogradov Nov 7, 2026
d8e6fcb
IGNITE-29256 Test SSL factory failure during filter creation
anton-vinogradov Nov 7, 2026
d78f07c
IGNITE-29256 Make discovery test connection actions explicit
anton-vinogradov Nov 7, 2026
36cffbd
IGNITE-29256 Keep one SSL factory in discovery recovery test
anton-vinogradov Nov 7, 2026
6258a8d
IGNITE-29256 Simplify SSL test setup and recovery scope
anton-vinogradov Nov 7, 2026
1eff48f
IGNITE-29256 Exercise factory init in discovery protocol tests
anton-vinogradov Nov 7, 2026
fbbf2bb
IGNITE-29256 Name shared TLS test data
anton-vinogradov Nov 7, 2026
7cb02e2
IGNITE-29256 Make TLS test inputs and expectations explicit
anton-vinogradov Nov 7, 2026
d3135f8
IGNITE-29256 Separate TLS reload test scenarios
anton-vinogradov Nov 7, 2026
22430ea
IGNITE-29256 Focus TLS tests on transport guarantees
anton-vinogradov Nov 7, 2026
1c357c3
IGNITE-29256 Test REST recovery after occupied port
anton-vinogradov Nov 7, 2026
983c238
IGNITE-29256 Handle discovery TLS errors at connection boundary
anton-vinogradov Nov 7, 2026
b0562e9
IGNITE-29256 Explain eager SSL context initialization
anton-vinogradov Nov 9, 2026
a00342f
IGNITE-29256 Preserve thin client SSL startup failures
anton-vinogradov Nov 9, 2026
a5e18ba
IGNITE-29210 Add manual TLS reload command
anton-vinogradov Nov 9, 2026
27077f6
IGNITE-29210 Cover missing targets and clarify reload guidance
anton-vinogradov Nov 9, 2026
542e17d
IGNITE-29210 Clarify completed reload results
anton-vinogradov Nov 9, 2026
4a9b887
IGNITE-29210 Remove redundant test import
anton-vinogradov Nov 9, 2026
8ab8e74
Merge commit '5d4ff8f299ed5266675bf4f4b0cc64c3d7aa74ef' into ignite-2…
anton-vinogradov Nov 9, 2026
374c3ed
IGNITE-29210 Register TLS factories in TCP SPIs
anton-vinogradov Nov 9, 2026
cd315d0
IGNITE-29210 Use a plain SSL factory registry
anton-vinogradov Nov 9, 2026
2bf7dc1
IGNITE-29210 Add SSL reload result wire description
anton-vinogradov Nov 9, 2026
2beeb77
IGNITE-29210 Improve reload diagnostics and tests
anton-vinogradov Nov 9, 2026
9f2c2d9
IGNITE-29210 Simplify reload command tests
anton-vinogradov Nov 9, 2026
3588e69
IGNITE-29210 Clarify HTTP REST reload scope
anton-vinogradov Nov 9, 2026
fa21b1b
IGNITE-29210 Clarify reload documentation
anton-vinogradov Nov 9, 2026
2faa3bb
IGNITE-29210 Keep factory Javadoc focused on behavior
anton-vinogradov Nov 9, 2026
11dcd39
IGNITE-29210 Drop unrelated trust manager Javadoc change
anton-vinogradov Nov 9, 2026
0cb438a
IGNITE-29210 Remove redundant comments
anton-vinogradov Nov 9, 2026
bcc52e5
IGNITE-29210 Test TLS reload when a node leaves before replying
anton-vinogradov Nov 9, 2026
f979dde
IGNITE-29210 Simplify node departure test and reload documentation
anton-vinogradov Nov 10, 2026
405b249
IGNITE-29210 Separate unsupported factory and reload failure tests
anton-vinogradov Nov 10, 2026
86035ce
IGNITE-29210 Coordinate initial SSL loading with reload
anton-vinogradov Nov 10, 2026
eeb4aa5
IGNITE-29210 Stop node TLS reload on first failure
anton-vinogradov Nov 11, 2026
1c59af4
IGNITE-29210 Test cached context access during reload
anton-vinogradov Nov 11, 2026
f151b87
IGNITE-29211 Restart renewal implementation on accepted manual reload
anton-vinogradov Nov 11, 2026
8f81912
Merge current Apache master for IGNITE-29211
anton-vinogradov Nov 11, 2026
0f2a8df
Merge Apache master with accepted IGNITE-29210
anton-vinogradov Nov 11, 2026
21b7baa
IGNITE-29211 Renew TLS certificates before expiry
anton-vinogradov Nov 11, 2026
285bdd3
IGNITE-29211 Isolate renewal from the reload caller context
anton-vinogradov Nov 11, 2026
5757400
IGNITE-29211 Coordinate TLS renewal in the registry
anton-vinogradov Nov 11, 2026
529f552
IGNITE-29211 Cover renewal recovery and shutdown
anton-vinogradov Nov 11, 2026
be30769
IGNITE-29211 Keep renewal cancellation inside factory
anton-vinogradov Nov 11, 2026
73e75d8
IGNITE-29211 Serialize renewal operations on the scheduler
anton-vinogradov Nov 12, 2026
33ea1c8
IGNITE-29211 Publish renewal dates after a successful load
anton-vinogradov Nov 12, 2026
5c0f0a8
IGNITE-29211 Cancel a waiting renewal through thread interruption
anton-vinogradov Nov 12, 2026
e5f996c
IGNITE-29211 Fix renewal startup ordering and expiry checks
anton-vinogradov Nov 12, 2026
997e016
IGNITE-29211 Explain certificate renewal as an operating procedure
anton-vinogradov Nov 12, 2026
bf5ed26
IGNITE-29211 Clarify renewal skips and failure contracts
anton-vinogradov Nov 12, 2026
65e136f
IGNITE-29211 Explain manual reload outcomes and recovery options
anton-vinogradov Nov 12, 2026
d24c9ac
IGNITE-29211 Wait one hour after reloading certificates already due f…
anton-vinogradov Nov 12, 2026
16441e8
IGNITE-29211 Validate replacements and report unchanged TLS material
anton-vinogradov Nov 12, 2026
5d4ac0c
IGNITE-29211 Fail renewal attempts that leave certificates due
anton-vinogradov Nov 12, 2026
51a1e00
IGNITE-29211 Preserve renewal retry ordering during startup
anton-vinogradov Nov 12, 2026
1288607
IGNITE-29211 Fix IDEA warnings in TLS renewal
anton-vinogradov Nov 12, 2026
03b2a53
IGNITE-29211 Rely on executor publication for registry fields
anton-vinogradov Nov 12, 2026
f61dce5
IGNITE-29211 Keep renewal dependencies in each renewal
anton-vinogradov Nov 12, 2026
779e7f8
IGNITE-29211 Keep one failure counter per renewal
anton-vinogradov Nov 12, 2026
0256992
IGNITE-29211 End the failure streak where renewal is scheduled
anton-vinogradov Nov 12, 2026
d6d724b
IGNITE-29211 Load manual reloads on the caller thread
anton-vinogradov Nov 12, 2026
cedc548
IGNITE-29211 Separate replacement checks from renewal time
anton-vinogradov Nov 12, 2026
a6cf69f
IGNITE-29211 Return the stored renewal time
anton-vinogradov Nov 12, 2026
bbe71df
IGNITE-29211 Check certificate dates on every load
anton-vinogradov Nov 12, 2026
705dbe4
IGNITE-29211 Renew without a separate factory lock
anton-vinogradov Nov 12, 2026
c68b577
IGNITE-29211 Stop renewal by the registry executor
anton-vinogradov Nov 12, 2026
f07d9e9
IGNITE-29211 Keep reload and renewal scheduling in one queue
anton-vinogradov Nov 12, 2026
2d176c9
IGNITE-29211 Make SSL key store loading explicit
anton-vinogradov Nov 12, 2026
c95b5c2
Revert "IGNITE-29211 Make SSL key store loading explicit"
anton-vinogradov Nov 12, 2026
f2d0501
IGNITE-29211 Build the SSL context from a local key store
anton-vinogradov Nov 12, 2026
0d957f7
Revert "IGNITE-29211 Build the SSL context from a local key store"
anton-vinogradov Nov 12, 2026
e791554
IGNITE-29211 Check each renewal rule in one test
anton-vinogradov Nov 13, 2026
3edbc43
IGNITE-29211 Pass the loaded key store explicitly
anton-vinogradov Nov 13, 2026
55a8e04
IGNITE-29211 Keep the key store chains in the key managers
anton-vinogradov Nov 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions docs/_docs/monitoring-metrics/new-metrics.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -432,6 +432,20 @@ Register name: `communication.tcp.{node_consistent_id}`
|sentMessagesToNode | long | Total number of messages sent by current node to the given node.
|===

== Certificate Renewal

Register name: `ssl`

[cols="2,1,3",opts="header"]
|===
|Name | Type | Description
|ConsecutiveRenewalFailures | long | Sum of consecutive automatic renewal failures across the node's SSL factories. Zero when renewal is disabled.
|ManualReloadAttempts | long | Factory reload attempts started by the node for manual commands, including errors. Excludes startup loads.
|AutomaticRenewalAttempts | long | Automatic factory renewal calls, including errors and calls that find renewal is no longer due.
|===

See link:security/ssl-tls#automatic-certificate-renewal[Automatic Certificate Renewal] for configuration and recovery.

== Communication Connection Pool

Register name: `communication.tcp.connectionPool`
Expand Down
101 changes: 100 additions & 1 deletion docs/_docs/security/ssl-tls.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -176,18 +176,113 @@ The command asks for confirmation; use `--yes` to skip it.
. Check the command result and the reload logs of any failed nodes, then verify a new connection with the replacement certificates.
Established connections continue using their existing TLS context.

`SslContextFactory` checks that every certificate in each private-key chain is valid whenever it loads a key store: at node startup, on reload and during automatic renewal.
A node with expired or not yet valid certificates does not start, and a reload of such certificates keeps the current ones.
Client applications and `control.sh` that use `SslContextFactory` apply the same check to their own key stores.
Replacement certificates may expire earlier than the current ones or have the same expiry date.
You can also update the trust store without replacing the node's certificate.

If a factory fails to reload, it keeps its previous context, and that node stops reloading its remaining factories.
Successful reloads remain in effect; other nodes continue independently.
Check the affected node's log for error details.
Correct the failed store and run the command again.
To restore the previous certificates, restore the backed-up files and reload again while peers still trust those certificates.
To restore the previous certificates, restore the backed-up files and reload again.
The restored certificates must still be valid and trusted by peers.

Custom factories must extend javadoc:org.apache.ignite.ssl.AbstractSslContextFactory[].
They must reread key and trust data from their sources on reload and supply the updated context for new connections.
If any factory on a node has another type, the command reports it as unsupported and reloads nothing on that node.
For these factories, follow the same trust-first sequence and restart affected nodes one at a time instead of running reload.
If you configured `trustManagers` directly, the command reuses them instead of reloading a trust store.

== Automatic Certificate Renewal

Automatic renewal lets nodes load replacement certificates without a reload command.
You must supply the replacements: Ignite reads them from the configured source and does not issue certificates.
Renewal covers the same TCP transports as <<Upgrading Certificates,manual reload>>.
It does not update the HTTP REST endpoint or external client applications.

=== Enable Renewal

Enable renewal on each configured `SslContextFactory` before starting the node:

[source,java]
----
factory.setRenewalEnabled(true);
----

Changing this setting requires a node restart.
The key store must contain a private key, and every private key must have an X.509 certificate chain.
A chain contains the key's certificate and the certificates of its issuers.
With renewal enabled, a store that does not meet these requirements prevents node startup.

Before replacing key stores, prepare peers' trust stores as described in <<Upgrading Certificates>>.
Once every affected peer trusts the replacement certificates, put the replacement key stores in the configured source.
Keep the configured paths, store types and passwords unchanged.
Ignite loads the replacements automatically when renewal is due; no reload command is needed for this step.

=== When Renewal Runs

A chain expires when any certificate in it expires, including an issuing certificate.
Ignite selects the chain that expires first and starts renewal attempts with 15% of its lifetime remaining.
If this point has already passed when the node starts, Ignite schedules an attempt immediately.
See link:{javadoc_base_url}/org/apache/ignite/ssl/SslContextFactory.html#getRenewalTime()[getRenewalTime(), window=_blank] for the calculation.

Automatic renewal applies the same certificate checks as <<Upgrading Certificates,manual reload>>.
If the loaded certificates are still within their renewal window, Ignite records a failed renewal attempt even though it installed the valid material.
This can happen when the certificates have not changed, only the trust store changed, or the replacements are already within their renewal window.
The loaded context remains in use while Ignite retries with the intervals below.

After a manual reload, Ignite schedules the next automatic attempt from the loaded certificates.
If their renewal window has already started, the attempt runs immediately.

New connections use the accepted certificates; established connections remain open.
To confirm a replacement, open a new TLS connection to each affected endpoint and compare its peer certificate with the replacement.

=== Check Failures and Recover

If loading or validation fails, Ignite keeps the current certificates and retries, even after they expire.
Keeping expired certificates does not extend their validity, so new connections may fail until a valid replacement is available.
Retry intervals grow from 1–1.5 minutes to 60–90 minutes.
The base delay doubles after each failure, with a random addition of up to 50%.

Check the node log for the next attempt, affected transports and the reason for a failure.
The `ssl.ConsecutiveRenewalFailures` metric sums consecutive failed automatic attempts across the node's factories.
Each factory's count resets after a successful manual reload or an automatic attempt after which renewal is no longer due.

`ssl.ManualReloadAttempts` and `ssl.AutomaticRenewalAttempts` count the node's calls to reload each factory.
They include errors and automatic attempts that find renewal is no longer due.
A factory shared by several transports is counted once per attempt.
Startup loading and direct application calls to the factory are not counted.

To recover without waiting for the next retry:

. Correct the replacement stores and run link:tools/control-script#reloading-tls-certificates[`control.sh --ssl reload`].
. Check the command result and verify a new connection with the replacement certificates.

*What a successful command means.*
The result `reloaded` means that the node loaded the stores and accepted their certificate dates.
The command also reports `reloaded` when the files have not changed.
Checking certificate dates does not establish whether peers trust the certificates or whether they have been revoked.
Verify a new TLS connection after a replacement.

*What happens to automatic renewal.*
If enabled, automatic renewal continues after manual reload, as described in <<When Renewal Runs>>.
A failed automatic attempt does not undo the manual reload.

*If the command cannot connect.*
First check the command's certificates and trust settings.
If the problem is on the node, put a valid replacement in its source and wait for an automatic retry.
To load corrected stores without the command or waiting for a retry, restart the affected nodes.

=== Custom Certificate Sources

For automatic renewal, custom sources require a subclass of javadoc:org.apache.ignite.ssl.SslContextFactory[].
Factories extending only `AbstractSslContextFactory` support manual reload only.
The certificate checks described above belong to `SslContextFactory`.
Factories extending only the base class retain their own loading behavior.
Limit request duration in custom sources: a blocked load can delay other renewals, manual reload and node shutdown.

== SslContextFactory Properties

`SslContextFactory` supports the following properties:
Expand Down Expand Up @@ -216,6 +311,10 @@ If you configured `trustManagers` directly, the command reuses them instead of r
|The protocol for secure transport. https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#sslcontext-algorithms[Supported algorithms,window=_blank].
|`TLS`

|`renewalEnabled`
|Enables automatic certificate renewal. See <<Automatic Certificate Renewal>>.
|`false`

|`trustStoreFilePath`
|The path to the trust store file.
|`N/A`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,8 @@ private SSLContext createSslContext() throws SSLException {

ctx.init(keyMgrs, trustMgrs, null);

acceptKeyManagers(keyMgrs);

return ctx;
}
catch (NoSuchAlgorithmException e) {
Expand All @@ -147,6 +149,17 @@ private SSLContext createSslContext() throws SSLException {
}
}

/**
* Accepts the key managers of a new SSL context before the context replaces the current one.
* Does nothing by default.
*
* @param keyMgrs Key managers created by {@link #createKeyManagers()} for the new context.
* @throws SSLException If the new context must not replace the current one.
*/
void acceptKeyManagers(KeyManager[] keyMgrs) throws SSLException {
// No-op.
}

/**
* @param param Value.
* @param name Name.
Expand Down
Loading