vmod_proxy(3)

vmod_proxy3

Vinyl cache module to extract tlv attributes from proxyv2

Usage

import proxy [as name] [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()

Overview

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()

Extract ALPN attribute.

Example:

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

Restricted to: client.

STRING authority()

Extract authority attribute. This corresponds to SNI from a TLS connection.

Example:

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

Restricted to: client.

BOOL is_ssl()

Report if proxy-protocol-v2 has SSL TLV.

Example:

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

Restricted to: client.

BOOL client_has_cert_sess()

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

Restricted to: client.

BOOL client_has_cert_conn()

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

Restricted to: client.

INT ssl_verify_result()

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";
}

Restricted to: client.

STRING ssl_version()

Extract SSL version attribute.

Example:

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

Restricted to: client.

STRING client_cert_cn()

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

Example::

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

Restricted to: client.

STRING ssl_cipher()

Extract the SSL cipher attribute.

Example:

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

Restricted to: client.

STRING cert_sign()

Extract the certificate signature algorithm attribute.

Example:

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

Restricted to: client.

STRING cert_key()

Extract the certificate key algorithm attribute.

Example:

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

Restricted to: client.

Releases

5 releases since Debian 10 (Buster); the text changed 4 times.

  1. 10
  2. 11
  3. 12
  4. 13
  5. Arch

From vinyl-cache 9.1.0-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.