tls server
tls server
The tls server binding decodes encrypted TLS protocol on the inbound network stream, producing higher level cleartext application streams for each request.
Authorization is enforced by a guard, supplied with the verified peer certificate chain from a mutually authenticated TLS session.
tls_server:
type: tls
kind: server
vault: server
exit: default_server
options:
keys:
- localhost
sni:
- localhost
alpn:
- echo
routes:
- when:
- alpn: echo
exit: echo_serverConfiguration (* required)
vault
string
Vault name.
options
object
The tls specific options.
options:
keys:
- localhost
sni:
- localhost
alpn:
- echooptions.version
string
Protocol version.
options.keys
arrayofstring
A list of reference names for the Vault key.
options.trust
arrayofstring
A list of reference names for the Vault certificate.
options.signers
arrayofstring
A list of reference names for the Vault signer certificate.
options.trustcacerts
boolean
Trust CA certificates. When the this property is not explicitly set it will be automatically set to true if options.trust is null.
options.sni
arrayofstring
A list of the Server Name Indications.
options.alpn
arrayofstring
Application protocols.
options.mutual
enum[required,requested,none]
Mutual authentication. When the this property is not explicitly set it will be automatically set to none if options.trust is null, otherwise it will be set to required.
options.authorization
objectas map of namedobjectproperties
Authorization by a named guard, supplied with the verified peer certificate chain from a mutually authenticated TLS session. The guard is consulted after the handshake has completed. When the peer is not verified no credentials are supplied, so a routes[].guarded route does not authorize.
authorization:
my_x509_guard:
credentials:
certificates: pemauthorization.credentials
object
Defines how the peer certificate chain is presented to the guard.
credentials.certificates
enum[pem]
Format of the supplied certificate chain. pem supplies the verified peer certificate chain as concatenated PEM, leaf certificate first.
routes
arrayofobject
Conditional tls specific routes. At least one of routes or the top-level exit is required.
routes:
- when:
- alpn: echo
exit: echo_serverroutes[].guarded
objectas map of namedarrayofstring
List of roles required by each named guard to authorize this route.
routes:
- guarded:
my_guard:
- read:itemsroutes[].when
arrayofobject
List of conditions (any match) to match this route. Read more: When a route matches
routes:
- when:
- alpn: echowhen[].authority
string
Associated authority.
when[].alpn
string
Application protocol.
when[].port
integer,string,array
Port number(s), including port number ranges.
when[].trust
arrayofstring
Vault trust certificate aliases the peer's certificate chain must be verified against to match this route.
when[].mutual
enum[required,none]
Mutual authentication state required to match this route.
routes[].exit
string
Next binding when following this route.
routes:
- when:
...
exit: echo_serverexit
string
Default exit binding when no conditional routes are viable.
exit: echo_servertelemetry
object
Defines the desired telemetry for the binding.
telemetry.metrics
array
Telemetry metrics to track
telemetry:
metrics:
- stream.*telemetry.attributes
objectas map of namedstringproperties
Telemetry attributes to add to the binding metrics.

