vmod_proxy

Varnish Module to extract TLV attributes from PROXYv2

Manual section:

3

SYNOPSIS

import proxy [from "path"] ;

STRING alpn()

STRING authority()

BOOL is_ssl()

BOOL client_has_cert_sess()

BOOL client_has_cert_conn()

INT ssl_verify_result()

STRING ssl_version()

STRING client_cert_cn()

STRING ssl_cipher()

STRING cert_sign()

STRING cert_key()

CONTENTS

DESCRIPTION

vmod_proxy contains functions to extract proxy-protocol-v2 TLV attributes as described in https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt.

STRING alpn()

Description

Extract alpn attribute.

Example

set req.http.alpn = proxy.alpn();

STRING authority()

Description

Extract authority attribute. This corresponds to sni from a tls connection.

Example

set req.http.authority = proxy.authority();

BOOL is_ssl()

Description

Report if proxy-protocol-v2 has ssl tlv.

Example
if (proxy.is_ssl()) {
set req.http.ssl-version = proxy.ssl_version();
}

BOOL client_has_cert_sess()

Description

Report if the client provided a certificate at least once over the TLS session this connection belongs to.

BOOL client_has_cert_conn()

Description

Report if the client provided a certificate over the current connection.

INT ssl_verify_result()

Description

Report the SSL_get_verify_result from a TLS session. It only matters if client_has_cert_sess() is true. Per default, value is set to 0 (X509_V_OK).

Example
if (proxy.client_has_cert_sess() && proxy.ssl_verify_result() == 0) {
set req.http.ssl-verify = “ok”;
}

STRING ssl_version()

Description

Extract ssl version attribute.

Example

set req.http.ssl-version = proxy.ssl_version();

STRING client_cert_cn()

Description

Extract the common name attribute of the client certificate’s.

Example

set req.http.cert-cn = proxy.client_cert_cn();

STRING ssl_cipher()

Description

Extract the ssl cipher attribute.

Example

set req.http.ssl-cipher = proxy.ssl_cipher();

STRING cert_sign()

Description

Extract the certificate signature algorithm attribute.

Example

set req.http.cert-sign = proxy.cert_sign();

STRING cert_key()

Description

Extract the certificate key algorithm attribute.

Example

set req.http.cert-key = proxy.cert_key();

SEE ALSO