Skip to content
Snippets Groups Projects
README.md 3.76 KiB

ngx_http_voms_module

pipeline status

Description

ngx_http_voms_module is a module for the Nginx web server that enables client-side authentication based on X.509 proxy certificates augmented with VOMS Attribute Certificates, typically obtained from a Virtual Organization Membership Service (VOMS) server.

The module defines a set of embedded variables, whose values are extracted from the first Attribute Certificate found in the certificate chain.

Installation

The generic installation instructions are:

$ cd nginx-x.y.z
$ ./configure --add-module=/path/to/ngx_http_voms_module
$ make && make install

The module is written in C++, using features from C++14 that are supported by gcc v. 4.8.5 (the version available in CentOS 7) enabling the option -std=c++1y (see config.make).

A Docker image is available for use in the context of the StoRM2 project, where the OpenResty distribution is used:

$ docker run --rm -it -v /path/to/ngx_http_voms_module:/home/build/ngx_http_voms_module storm2/ngx-voms-build
$ cd openresty-x.y.z
$ ./configure ${RESTY_CONFIG_OPTIONS} --add-module=../ngx_http_voms_module
$ make && make install

Embedded Variables

The module makes the following embedded variables available for use in an Nginx configuration file:

voms_user

The Subject of the End-Entity certificate, used to sign the proxy.

Example: /C=IT/O=IGI/CN=test0

ssl_client_ee_s_dn

Like voms_user, the Subject of the End-Entity certificate. Unlike voms_user, it is available even for non-VOMS proxies and is formatted according to RFC 2253.

Example: CN=test0,O=IGI,C=IT

voms_user_ca