|
|
|
@ -83,25 +83,26 @@ environment and adapt these configurations accordingly.
|
|
|
|
|
- [`verifing_incoming_rpc`](/docs/agent/options#verify_incoming_rpc) - By default this is false, and should almost |
|
|
|
|
always be set to true to require clients to provide a valid TLS certificate for Consul agent RPCs. |
|
|
|
|
|
|
|
|
|
- [`verify_outgoing` - By default this is false, and should be set to true to require TLS for outgoing connections from |
|
|
|
|
server or client agents. Servers that specify `verify_outgoing = true` will always talk to other servers over TLS, |
|
|
|
|
but they still accept non-TLS connections to allow for a transition of all clients to TLS. Currently the only way to |
|
|
|
|
enforce that no client can communicate with a server unencrypted is to also enable `verify_incoming` which requires |
|
|
|
|
client certificates too. |
|
|
|
|
|
|
|
|
|
- `enable_agent_tls_for_checks`](/docs/agent/options#verify_outgoing) - By default this is false, and should almost |
|
|
|
|
always be set to true to require mTLS to set up the client for HTTP or gRPC health checks. This was added in |
|
|
|
|
Consul 1.0.1. |
|
|
|
|
|
|
|
|
|
- `verify_server_hostname` - By default this is false, and should be set to true to require for outgoing TLS |
|
|
|
|
connections that the TLS certificate presented by the servers matches `server.<datacenter>.<domain> hostname`. The |
|
|
|
|
default configuration does not verify the hostname of the certificate, only that it is signed by a trusted CA. This |
|
|
|
|
setting is critical to prevent a compromised client agent from being restarted as a server and having all cluster |
|
|
|
|
state including all ACL tokens and Connect CA root keys replicated to it, and introduced in 0.5.1. From version |
|
|
|
|
0.5.1 to 1.4.0 we documented that `verify_server_hostname` being true implied verify_outgoing however due to a bug |
|
|
|
|
this was not the case so setting only `verify_server_hostname` results in plaintext communication between client |
|
|
|
|
and server. See [CVE-2018-19653](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19653) for more details. |
|
|
|
|
This is fixed in 1.4.1. |
|
|
|
|
- [`verify_outgoing`](/docs/agent/options#verify_outgoing) - By default this is false, and should be set to true to |
|
|
|
|
require TLS for outgoing connections from server or client agents. Servers that specify `verify_outgoing = true` |
|
|
|
|
will always talk to other servers over TLS, but they still accept non-TLS connections to allow for a transition of |
|
|
|
|
all clients to TLS. Currently the only way to enforce that no client can communicate with a server unencrypted is |
|
|
|
|
to also enable `verify_incoming` which requires client certificates too. |
|
|
|
|
|
|
|
|
|
- [`enable_agent_tls_for_checks`](/docs/agent/options#enable_agent_tls_for_checks) - By default this is false, and |
|
|
|
|
should almost always be set to true to require mTLS to set up the client for HTTP or gRPC health checks. This was |
|
|
|
|
added in Consul 1.0.1. |
|
|
|
|
|
|
|
|
|
- [`verify_server_hostname`](/docs/agent/options#verify_server_hostname) - By default this is false, and should be |
|
|
|
|
set to true to require for outgoing TLS connections that the TLS certificate presented by the servers matches |
|
|
|
|
`server.<datacenter>.<domain> hostname`. The default configuration does not verify the hostname of the certificate, |
|
|
|
|
only that it is signed by a trusted CA. This setting is critical to prevent a compromised client agent from being |
|
|
|
|
restarted as a server and having all cluster state including all ACL tokens and Connect CA root keys replicated to |
|
|
|
|
it, and introduced in 0.5.1. From version 0.5.1 to 1.4.0 we documented that `verify_server_hostname` being true |
|
|
|
|
implied verify_outgoing however due to a bug this was not the case so setting only `verify_server_hostname` results |
|
|
|
|
in plaintext communication between client and server. |
|
|
|
|
See [CVE-2018-19653](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19653) for more details. This is fixed |
|
|
|
|
in 1.4.1. |
|
|
|
|
|
|
|
|
|
**Example Server Agent TLS Configuration** |
|
|
|
|
|
|
|
|
|