Skip to main content
Version: 2.12

tls

Hot Reloadable
New TLS material is used by connections established after the reload; existing client connections keep the session they negotiated. pinned_certs is applied to existing connections immediately.

TLS configuration for client and HTTP monitoring.

Properties

NameDescriptionTypeDefaultReloadable
allow_insecure_cipher_suitesPermit cipher suites Go considers insecure to be named in cipher_suites. Without it those names are rejected.booleanfalseYes
cert_storeLoad the certificate from an OS certificate store rather than a file. Windows only.string-Yes
certsMultiple certificate/key pairs to serve, so one listener can present different certificates to different clients. Use this instead of cert_file and key_file.object-Yes
handshake_firstSend the TLS handshake before the INFO protocol message rather than after. A duration string instead of true waits that long for a client that may not support it before falling back.(multiple)falseYes
min_versionLowest TLS version the server will negotiate.string-Yes
ocsp_peerVerify the peer's certificate against its OCSP responder and reject revoked certificates. Set an object to tune the checks.(multiple)falseYes
cert_fileTLS certificate file.string-Yes*
key_fileTLS certificate key file.string-Yes*
ca_fileTLS certificate authority file. Defaults to system trust store.string-Yes*
cipher_suitesWhen set, only the specified TLS cipher suites will be allowed. Values must match the golang version used to build the server.string-Yes
curve_preferencesList of TLS cipher curves to use in order.string-Yes
insecureSkip certificate verification. This only applies to outgoing connections, NOT incoming client connections. not recommended.boolean-Yes*
timeoutTLS handshake timeout.duration500msYes
verifyIf true, require and verify client certificates. Does not apply to monitoring.booleanfalseYes*
verify_and_mapIf true, require and verify client certificates and map certificate values for authentication. Does not apply to monitoring.booleanfalseNo
verify_cert_and_check_known_urlsOnly used in a non-client context where verify is true, such as cluster and gateway configurations. The incoming connection's certificate x509v3 Subject Alternative Name DNS entries will be matched against all URLs. If a match is found, the connection is accepted and rejected otherwise. For gateways, the server will match all names in the certificate against the gateway URLs. For clusters, the server will match all names in the certificate against the route URLs. A consequence of this, is that dynamic cluster growth may require config changes in other clusters where this option is true. DNS name checking is performed according to RFC6125. Only the full wildcard is supported for the the left most domain.boolean-No*
connection_rate_limitinteger-No*
pinned_certsList of hex-encoded SHA256 of DER-encoded public key fingerprints. When present, during the TLS handshake, the provided certificate's fingerprint is required to be present in the list, otherwise the connection will be closed.string-Yes*

* See the property page for reload caveats.