From 048465890590495e9b55ff86e20ebb1396828d79 Mon Sep 17 00:00:00 2001 From: reebhub Date: Wed, 10 Apr 2024 18:29:00 +0300 Subject: [PATCH] document that `Security.WellKnownIssuers.Admin` was added and `Security.WellKnownIssuerHashes.Admin` is obsolete --- .../security-configuration.markdown | 250 ++++++++++++++++++ .../images/export_cluster_certificates.png | Bin 0 -> 16497 bytes .../images/renew_server_certificate.png | Bin 0 -> 13201 bytes .../images/upload-client-certificate.png | Bin 0 -> 6806 bytes ...cluster-certificate-renewal-issue.markdown | 158 +++++++++++ 5 files changed, 408 insertions(+) create mode 100644 Documentation/5.2/Raven.Documentation.Pages/server/configuration/security-configuration.markdown create mode 100644 Documentation/5.2/Raven.Documentation.Pages/server/security/authentication/images/export_cluster_certificates.png create mode 100644 Documentation/5.2/Raven.Documentation.Pages/server/security/authentication/images/renew_server_certificate.png create mode 100644 Documentation/5.2/Raven.Documentation.Pages/server/security/authentication/images/upload-client-certificate.png create mode 100644 Documentation/5.2/Raven.Documentation.Pages/server/security/authentication/solve-cluster-certificate-renewal-issue.markdown diff --git a/Documentation/5.2/Raven.Documentation.Pages/server/configuration/security-configuration.markdown b/Documentation/5.2/Raven.Documentation.Pages/server/configuration/security-configuration.markdown new file mode 100644 index 0000000000..dc6c88cfea --- /dev/null +++ b/Documentation/5.2/Raven.Documentation.Pages/server/configuration/security-configuration.markdown @@ -0,0 +1,250 @@ +# Configuration: Security + +The following configuration values allow you to control the desired level of security in a RavenDB server. For a more detailed explanation, please visit the [Security Section](../security/overview). + +{PANEL:Security.Certificate.Path} + +The path to .pfx certificate file. If specified, RavenDB will use HTTPS/SSL for all network activities. +Certificate setting priority order: +1. Path +2. Executable + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.Certificate.Password} + +The (optional) password of the .pfx certificate file. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.Certificate.Exec} + +Deprecated in 4.2 and replaced with [Security.Certificate.Load.Exec](../../server/configuration/security-configuration#security.certificate.load.exec), see below. + +{PANEL/} + +{PANEL:Security.Certificate.Exec.Arguments} + +Deprecated in 4.2 and replaced with [Security.Certificate.Load.Exec.Arguments](../../server/configuration/security-configuration#security.certificate.load.exec.arguments), see below. + +{PANEL/} + +{PANEL:Security.Certificate.Load.Exec} + +A command or executable that provides the .pfx cluster certificate when invoked by RavenDB. If specified, RavenDB will use HTTPS/SSL for all network activities. +The `Security.Certificate.Path` setting takes precedence over this executable. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.Certificate.Renew.Exec} + +A command or executable that handles automatic cluster certificate renewals and passes the renewed .pfx certificate to the rest of the cluster. The +[leader node](../../server/clustering/rachis/cluster-topology#leader) will invoke this executable once every hour and if a new certificate is received, it +will be sent to the other nodes. The executable specified in `Security.Certificate.Change.Exec` will then be used to persist the certificate across the cluster. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.Certificate.Change.Exec} + +A command or executable that replaces the old cluster certificate with the renewed cluster certificate. After `Security.Certificate.Change.Exec` distibutes the +new certificate, this executable persists it locally at each follower node. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.Certificate.Load.Exec.Arguments} + +The command line arguments for the 'Security.Certificate.Load.Exec' command or executable. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.Certificate.Renew.Exec.Arguments} + +The command line arguments for the 'Security.Certificate.Renew.Exec' command or executable. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.Certificate.Change.Exec.Arguments} + +The command line arguments for the 'Security.Certificate.Change.Exec' command or executable. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.Certificate.Exec.TimeoutInSec} + +The number of seconds to wait for the certificate executables to exit. +Applies to: `Security.Certificate.Load.Exec`, `Security.Certificate.Renew.Exec`, and `Security.Certificate.Change.Exec`. + +- **Type**: `int` +- **Default**: `30` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.Certificate.LetsEncrypt.Email} + +The E-mail address associated with the Let's Encrypt certificate. Used for renewal requests. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.MasterKey.Path} + +The path of the (256-bit) Master Key. If specified, RavenDB will use this key to protect secrets. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.MasterKey.Exec} + +A command or executable to run which will provide a (256-bit) Master Key, If specified, RavenDB will use this key to protect secrets. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.MasterKey.Exec.Arguments} + +The command line arguments for the 'Security.MasterKey.Exec' command or executable. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.MasterKey.Exec.TimeoutInSec} + +The number of seconds to wait for the Master Key executable to exit. + +- **Type**: `int` +- **Default**: `30` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.UnsecuredAccessAllowed} + +If authentication is disabled, set the address range type for which server access is unsecured (`None | Local | PrivateNetwork | PublicNetwork`). + +- **Type**: `flags` +- **Default**: `Local` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.DoNotConsiderMemoryLockFailureAsCatastrophicError} + +Determines whether RavenDB will consider memory lock error to be catastrophic. This is used with encrypted databases to ensure that temporary buffers are never written to disk and are locked to memory. Setting this to true is not recommended and should be done only after a proper security analysis has been performed. + +- **Type**: `bool` +- **Default**: `false` +- **Scope**: Server-wide or per database + +{WARNING Use with caution. /} + +{PANEL/} + +{PANEL:Security.DisableHttpsRedirection} + +Disable automatic redirection when listening to HTTPS. By default, when using port 443, RavenDB redirects all incoming HTTP traffic on port 80 to HTTPS on port 443. + +- **Type**: `bool` +- **Default**: `false` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.AuditLog.FolderPath} + +The path to a folder where RavenDB will store the access audit logs. + +- **Type**: `string` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.AuditLog.RetentionTimeInHours} + +How far back we should retain audit log entries. + +- **Type**: `int` +- **Default**: `365 * 24` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.WellKnownCertificates.Admin} + +Allow to specify well known certificate thumbprints that will be trusted by the server as cluster admins. + +- **Type**: `strings seperated by ;` +- **Example**: `297430d6d2ce259772e4eccf97863a4dfe6b048c;e6a3b45b062d509b3382282d196efe97d5956ccb` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.WellKnownIssuers.Admin} + +Provide a well-known issuer **certificate in base 64 format** or a certificate **file path**, +that will be used to validate a new client certificate when the issuer's certificate has changed. + +- **Type**: `string[]` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL:Security.TlsCipherSuites} + +{DANGER: For experts, use with caution} +Defines a list of supported TLS Cipher Suites. Values must be semicolon separated. +{DANGER/} + +- **Type**: `TlsCipherSuite[]` +- **Example**: `TLS_RSA_WITH_RC4_128_MD5;TLS_RSA_WITH_RC4_128_SHA` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} diff --git a/Documentation/5.2/Raven.Documentation.Pages/server/security/authentication/images/export_cluster_certificates.png b/Documentation/5.2/Raven.Documentation.Pages/server/security/authentication/images/export_cluster_certificates.png new file mode 100644 index 0000000000000000000000000000000000000000..c30b07a6fa4512af2a19652b2486d46899e13b5c GIT binary patch literal 16497 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 R^j90QJGXSz3vNQ5{~tc}Hkbea literal 0 HcmV?d00001 diff --git a/Documentation/5.2/Raven.Documentation.Pages/server/security/authentication/images/upload-client-certificate.png b/Documentation/5.2/Raven.Documentation.Pages/server/security/authentication/images/upload-client-certificate.png new file mode 100644 index 0000000000000000000000000000000000000000..da88edd677be4ef765470122556a0d2a973366cc GIT binary patch literal 6806 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 npsF9Co8_B(qjI