diff --git a/apps/emqx/src/emqx_schema.erl b/apps/emqx/src/emqx_schema.erl
index dcce6e438..a50f3a5f6 100644
--- a/apps/emqx/src/emqx_schema.erl
+++ b/apps/emqx/src/emqx_schema.erl
@@ -88,23 +88,26 @@ roots(high) ->
}
, {"zones",
sc(map("name", ref("zone")),
- #{ desc => "A zone is a set of configs grouped by the zone name
.
"
- "For flexible configuration mapping, the name
"
- "can be set to a listener's zone
config.
"
- "NOTE: A builtin zone named default
is auto created "
- "and can not be deleted."
+ #{ desc =>
+"""A zone is a set of configs grouped by the zone name
.
+For flexible configuration mapping, the name
+can be set to a listener's zone
config.
+NOTE: A builtin zone named default
is auto created
+and can not be deleted."""
})}
, {"mqtt",
sc(ref("mqtt"),
- #{ desc => "Global MQTT configuration.
"
- "The configs here work as default values which can be overriden "
- "in zone
configs"
+ #{ desc =>
+"""Global MQTT configuration.
+The configs here work as default values which can be overriden
+in zone
configs"""
})}
, {"authentication",
sc(hoconsc:lazy(hoconsc:array(map())),
- #{ desc => "Default authentication configs for all MQTT listeners.
"
- "For per-listener overrides see authentication
"
- "in listener configs"
+ #{ desc =>
+"""Default authentication configs for all MQTT listeners.
+For per-listener overrides see authentication
+in listener configs"""
})}
, {"authorization",
sc(ref("authorization"),
@@ -956,7 +959,7 @@ common_ssl_opts_schema(Defaults) ->
#{ sensitive => true
, nullable => true
, desc =>
-"""String containing the user's password. Only used if the private
+"""String containing the user's password. Only used if the private
keyfile is password-protected."""
})
}
@@ -967,7 +970,7 @@ keyfile is password-protected."""
"""All TLS/DTLS versions to be supported.
NOTE: PSK ciphers are suppresed by 'tlsv1.3' version config
In case PSK cipher suites are intended, make sure to configured
-['tlsv1.2', 'tlsv1.1']
here
.
+['tlsv1.2', 'tlsv1.1']
here.
"""
})
}
@@ -982,9 +985,9 @@ In case PSK cipher suites are intended, make sure to configured
sc(boolean(),
#{ default => Df("secure_renegotiate", true)
, desc => """
-SSL parameter renegotiation is a feature that allows a client and a server
-to renegotiate the parameters of the SSL connection on the fly.
-RFC 5746 defines a more secure way of doing this. By enabling secure renegotiation,
+SSL parameter renegotiation is a feature that allows a client and a server
+to renegotiate the parameters of the SSL connection on the fly.
+RFC 5746 defines a more secure way of doing this. By enabling secure renegotiation,
you drop support for the insecure renegotiation, prone to MitM attacks.
"""
})
@@ -1003,9 +1006,9 @@ server_ssl_opts_schema(Defaults, IsRanchListener) ->
#{ default => D("dhfile")
, nullable => true
, desc =>
-"""Path to a file containing PEM-encoded Diffie Hellman parameters
-to be used by the server if a cipher suite using Diffie Hellman
-key exchange is negotiated. If not specified, default parameters
+"""Path to a file containing PEM-encoded Diffie Hellman parameters
+to be used by the server if a cipher suite using Diffie Hellman
+key exchange is negotiated. If not specified, default parameters
are used.
NOTE: The dhfile option is not supported by TLS 1.3."""
})
@@ -1015,10 +1018,10 @@ NOTE: The dhfile option is not supported by TLS 1.3."""
#{ default => Df("fail_if_no_peer_cert", false)
, desc =>
"""
-Used together with {verify, verify_peer} by an TLS/DTLS server.
-If set to true, the server fails if the client does not have a
-certificate to send, that is, sends an empty certificate.
-If set to false, it fails only if the client sends an invalid
+Used together with {verify, verify_peer} by an TLS/DTLS server.
+If set to true, the server fails if the client does not have a
+certificate to send, that is, sends an empty certificate.
+If set to false, it fails only if the client sends an invalid
certificate (an empty certificate is considered valid).
"""
})
@@ -1032,13 +1035,13 @@ certificate (an empty certificate is considered valid).
sc(boolean(),
#{ default => Df("client_renegotiation", true)
, desc => """
-In protocols that support client-initiated renegotiation,
-the cost of resources of such an operation is higher for the server than the client.
-This can act as a vector for denial of service attacks.
-The SSL application already takes measures to counter-act such attempts,
-but client-initiated renegotiation can be strictly disabled by setting this option to false.
-The default value is true. Note that disabling renegotiation can result in
-long-lived connections becoming unusable due to limits on
+In protocols that support client-initiated renegotiation,
+the cost of resources of such an operation is higher for the server than the client.
+This can act as a vector for denial of service attacks.
+The SSL application already takes measures to counter-act such attempts,
+but client-initiated renegotiation can be strictly disabled by setting this option to false.
+The default value is true. Note that disabling renegotiation can result in
+long-lived connections becoming unusable due to limits on
the number of messages the underlying cipher suite can encipher.
"""
})
@@ -1060,15 +1063,15 @@ client_ssl_opts_schema(Defaults) ->
#{ default => disable
, desc =>
"""Specify the host name to be used in TLS Server Name Indication extension.
-For instance, when connecting to \"server.example.net\", the genuine server
-which accedpts the connection and performs TSL handshake may differ from the
-host the TLS client initially connects to, e.g. when connecting to an IP address
+For instance, when connecting to \"server.example.net\", the genuine server
+which accedpts the connection and performs TSL handshake may differ from the
+host the TLS client initially connects to, e.g. when connecting to an IP address
or when the host has multiple resolvable DNS records
-If not specified, it will default to the host name string which is used
+If not specified, it will default to the host name string which is used
to establish the connection, unless it is IP addressed used.
-The host name is then also used in the host name verification of the peer
+The host name is then also used in the host name verification of the peer
certificate.
The special value 'disable' prevents the Server Name
-Indication extension from being sent and disables the hostname
+Indication extension from being sent and disables the hostname
verification check."""
})}
].
@@ -1090,22 +1093,22 @@ ciphers_schema(Default) ->
end
, validator => fun validate_ciphers/1
, desc =>
-"""TLS cipher suite names separated by comma, or as an array of strings
-\"TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256\"
or
+"""TLS cipher suite names separated by comma, or as an array of strings
+\"TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256\"
or
[\"TLS_AES_256_GCM_SHA384\",\"TLS_AES_128_GCM_SHA256\"]
-Ciphers (and their ordering) define the way in which the
-client and server encrypts information over the wire.
-Selecting a good cipher suite is critical for the
-application's data security, confidentiality and performance.
-The names should be in OpenSSL sting format (not RFC format).
-Default values and examples proveded by EMQ X config
+Ciphers (and their ordering) define the way in which the
+client and server encrypts information over the wire.
+Selecting a good cipher suite is critical for the
+application's data security, confidentiality and performance.
+The names should be in OpenSSL sting format (not RFC format).
+Default values and examples proveded by EMQ X config
documentation are all in OpenSSL format.
-NOTE: Certain cipher suites are only compatible with
-specific TLS versions
('tlsv1.1', 'tlsv1.2' or 'tlsv1.3')
-incompatible cipher suites will be silently dropped.
-For instance, if only 'tlsv1.3' is given in the versions
,
+NOTE: Certain cipher suites are only compatible with
+specific TLS versions
('tlsv1.1', 'tlsv1.2' or 'tlsv1.3')
+incompatible cipher suites will be silently dropped.
+For instance, if only 'tlsv1.3' is given in the versions
,
configuring cipher suites for other versions will have no effect.