TLS Inspector

TLS Inspector listener filter allows detecting whether the transport appears to be TLS or plaintext, and if it is TLS, it detects the Server Name Indication and/or Application-Layer Protocol Negotiation from the client. This can be used to select a FilterChain via the server_names and/or application_protocols of a FilterChainMatch.

  • SNI
  • v2 API reference
  • This filter should be configured with the name envoy.listener.tls_inspector.

Example

A sample filter configuration could be:

listener_filters:
  - name: "envoy.listener.tls_inspector"
    typed_config: {}

Statistics

This filter has a statistics tree rooted at tls_inspector with the following statistics:

Name Type Description
connection_closed Counter Total connections closed
client_hello_too_large Counter Total unreasonably large Client Hello received
read_error Counter Total read errors
tls_found Counter Total number of times TLS was found
tls_not_found Counter Total number of times TLS was not found
alpn_found Counter Total number of times Application-Layer Protocol Negotiation was successful
alpn_not_found Counter Total number of times Application-Layer Protocol Negotiation has failed
sni_found Counter Total number of times Server Name Indication was found
sni_not_found Counter Total number of times Server Name Indication was not found