Configures a TLS context: the identity (key and certificate) presented to the peer, the certificates trusted from it, and handshake parameters such as protocol, ciphers, and client-certificate policy. Attach it to a serviceProxy/api to terminate inbound TLS, or to a target to make an outbound connection over TLS; most attributes and child elements apply to both directions, but a few - such as clientAuth and useAsDefault - only take effect on an inbound context. See tutorials/ssl-tls/10-TLS-Termination.yaml for inbound termination and tutorials/ssl-tls/20-Central-SSL-Config.yaml for sharing one ssl across several APIs via $ref.
ssl:
keystore: ... | key: ... | keyGenerator: ... # this side's identity (pick one)
[ truststore: ... | trust: ... ] # CAs trusted from the peer
[ acme: ... ] # obtain identity via ACME instead
[ clientAuth: want | need ] # default: not set (inbound only)
[ protocols: <protocol>[,<protocol>...] ]
[ ciphers: <cipher>[,<cipher>...] ]
[ insecureValidation: true | false ] # default: false
...
Accepts a peer certificate that is expired or not yet valid; the rest of chain validation (issuer signature, trust anchor) is unaffected. For disabling all certificate validation, see insecureValidation instead.
-
insecureValidation
false
false
Disables all certificate validation (chain-of-trust and hostname) for this SSL context, equivalent to curl -k; this also makes ignoreTimestampCheckFailure redundant. A configured <truststore> or <trust> is ignored while this is set. On an inbound (server) context with clientAuth="need", a client certificate is still required but no longer validated. Only use for testing; never in production, as it removes all protection against man-in-the-middle attacks.
Hostname sent via the TLS Server Name Indication (SNI, RFC 3546) extension on outbound connections, telling the server which certificate to present. Set to an empty string to send no SNI extension at all.
-
showSSLExceptions
false
false
Logs SSL/TLS handshake exceptions (e.g. an untrusted or expired peer certificate) instead of only failing the connection silently.
-
useAsDefault
false
true
whether to use the SSLContext built from this SSLParser when no SNI header was transmitted.
-
useExperimentalHttp2
false
false
whether to enable receiving HTTP/2 requests. (experimental)
Loads a private key and its certificate chain from a keystore file, to be presented as this side's identity during a TLS handshake (or, inside wsSecurity, to sign a message). See tutorials/web-services-security/50-Sign-And-Validate-Body.yaml.
Supplies the CA certificates trusted when validating a peer's certificate chain, for example during a TLS handshake or, inside wsSecurity, when verifying a signature. See tutorials/web-services-security/50-Sign-And-Validate-Body.yaml.