Skip to content

Commit ab96a6f

Browse files
authored
2 parents de52148 + 5345ef5 commit ab96a6f

File tree

3 files changed

+69
-0
lines changed

3 files changed

+69
-0
lines changed

modules/ROOT/pages/configuration/configuration-settings.adoc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4468,6 +4468,22 @@ m|+++false+++
44684468
|===
44694469

44704470

4471+
[role=label--enterprise-edition label--new-2025.03]
4472+
[[config_dbms.security.tls_reload_enabled]]
4473+
=== `dbms.security.tls_reload_enabled`
4474+
4475+
.dbms.security.tls_reload_enabled
4476+
[frame="topbot", stripes=odd, grid="cols", cols="<1s,<4"]
4477+
|===
4478+
|Description
4479+
a|Enable the reloading to TLS configuration and certificates dynamically by calling a procedure.
4480+
|Valid values
4481+
a|A boolean.
4482+
|Default value
4483+
m|+++false+++
4484+
|===
4485+
4486+
44714487
[[config_dbms.netty.ssl.provider]]
44724488
=== `dbms.netty.ssl.provider`
44734489

modules/ROOT/pages/procedures.adoc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,17 @@ For more information, see xref:authentication-authorization/index.adoc[Authentic
7474
| *Mode* 3+| DBMS
7575
|===
7676

77+
[role=label--enterprise-edition label--admin-only label--new-2025.03]
78+
[procedure_dbms_security_reload_tls]]
79+
=== dbms.security.reloadTLS()
80+
81+
82+
.Details
83+
|===
84+
| *Syntax* 3+m| dbms.security.reloadTLS()
85+
| *Description* 3+a| Trigger the dynamic reloading of all TLS certificates and configuration.
86+
| *Mode* 3+| DBMS
87+
|===
7788

7889
[[procedure_dbms_showcurrentuser]]
7990
=== dbms.showCurrentUser()

modules/ROOT/pages/security/ssl-framework.adoc

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1108,6 +1108,48 @@ Beware that the SSL debug option logs a new statement every time a client connec
11081108
To avoid that scenario, make sure this setting is only enabled for a short term duration.
11091109
====
11101110
1111+
[role=label--new-2025.03]
1112+
[[certificate-rotation]]
1113+
== Certificates rotation
1114+
1115+
It is considered best practice to use certificates with reasonably short duration.
1116+
This, however, requires the periodic rotation of certificates whereby old certificates are removed and the new ones are installed.
1117+
Previous versions of Neo4j required a database restart for changes to be applied.
1118+
Starting from 2025.03, new certificates can be rotated in, and SSL configuration can be updated without requiring a restart.
1119+
This reduces undesirable effects of transient loss of cluster members.
1120+
1121+
The following steps outline the process for certificates rotation.
1122+
1123+
. Enable the dynamic reloading of certificates on all cluster members.
1124+
It is best to do this when the cluster is deployed as changing this configuration requires a restart:
1125+
1126+
[source, properties]
1127+
----
1128+
dbms.security.tls_reload_enabled=true (default is false)
1129+
----
1130+
1131+
. Replace old certificates either by overwriting them on the filesystem or by copying them to a new location.
1132+
Then update the required SSL configuration for each effected scope.
1133+
+
1134+
New and old certificates may co-exist on the filesystem, but only one can be referenced in the configuration.
1135+
New certificates need to be copied to all cluster members as required.
1136+
1137+
. Make necessary changes to any of the SSL configuration and/or replace certificates for effected scopes.
1138+
1139+
. Connect to each cluster member in turn with Cypher Shell using a <<ssl-bolt-connect,`bolt` URI scheme>> and run the reload procedure:
1140+
1141+
[source]
1142+
----
1143+
dbms.security.reloadTLS()
1144+
----
1145+
1146+
. New settings will take effect immediately; however, existing connections will not be preemptively terminated.
1147+
This means that while new connections will use new certificates, the existing connections (established before the update) will continue using the old certificates.
1148+
Even if a certificate expires, active connections remain unaffected because the certificates are only used during the initial connection handshake.
1149+
1150+
. Verify that the intra-cluster communication is still encrypted using external tooling, such as Nmap, described in <<ssl-cluster-config, Configuring SSL for intra-cluster communications>>.
1151+
1152+
11111153
[[ssl-terminology]]
11121154
== Terminology
11131155

0 commit comments

Comments
 (0)