view auto/lib/libxslt/conf @ 8185:59e1c73fe02b

SSL: ssl_reject_handshake directive (ticket #195). In some cases it might be needed to reject SSL handshake based on SNI server name provided, for example, to make sure an invalid certificate is not returned to clients trying to contact a name-based virtual server without SSL configured. Previously, a "ssl_ciphers aNULL;" was used for this. This workaround, however, is not compatible with TLSv1.3, in particular, when using BoringSSL, where it is not possible to configure TLSv1.3 ciphers at all. With this change, the ssl_reject_handshake directive is introduced, which instructs nginx to reject SSL handshakes with an "unrecognized_name" alert in a particular server block. For example, to reject handshake with names other than example.com, one can use the following configuration: server { listen 443 ssl; ssl_reject_handshake on; } server { listen 443 ssl; server_name example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; } The following configuration can be used to reject all SSL handshakes without SNI server name provided: server { listen 443 ssl; ssl_reject_handshake on; } server { listen 443 ssl; server_name ~^; ssl_certificate example.crt; ssl_certificate_key example.key; } Additionally, the ssl_reject_handshake directive makes configuring certificates for the default server block optional. If no certificates are configured in the default server for a given listening socket, certificates must be defined in all non-default server blocks with the listening socket in question.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 22 Oct 2020 18:02:28 +0300
parents f7e79596baf2
children
line wrap: on
line source


# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.


    ngx_feature="libxslt"
    ngx_feature_name=
    ngx_feature_run=no
    ngx_feature_incs="#include <libxml/parser.h>
                      #include <libxml/tree.h>
                      #include <libxslt/xslt.h>
                      #include <libxslt/xsltInternals.h>
                      #include <libxslt/transform.h>
                      #include <libxslt/xsltutils.h>"
    ngx_feature_path="/usr/include/libxml2"
    ngx_feature_libs="-lxml2 -lxslt"
    ngx_feature_test="xmlParserCtxtPtr    ctxt = NULL;
                      xsltStylesheetPtr   sheet = NULL;
                      xmlDocPtr           doc = NULL;
                      xmlParseChunk(ctxt, NULL, 0, 0);
                      xsltApplyStylesheet(sheet, doc, NULL);"
    . auto/feature


if [ $ngx_found = no ]; then

    # FreeBSD port

    ngx_feature="libxslt in /usr/local/"
    ngx_feature_path="/usr/local/include/libxml2 /usr/local/include"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lxml2 -lxslt"
    else
        ngx_feature_libs="-L/usr/local/lib -lxml2 -lxslt"
    fi

    . auto/feature
fi


if [ $ngx_found = no ]; then

    # NetBSD port

    ngx_feature="libxslt in /usr/pkg/"
    ngx_feature_path="/usr/pkg/include/libxml2 /usr/pkg/include"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lxml2 -lxslt"
    else
        ngx_feature_libs="-L/usr/pkg/lib -lxml2 -lxslt"
    fi

    . auto/feature
fi


if [ $ngx_found = no ]; then

    # MacPorts

    ngx_feature="libxslt in /opt/local/"
    ngx_feature_path="/opt/local/include/libxml2 /opt/local/include"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lxml2 -lxslt"
    else
        ngx_feature_libs="-L/opt/local/lib -lxml2 -lxslt"
    fi

    . auto/feature
fi


if [ $ngx_found = yes ]; then

    CORE_INCS="$CORE_INCS $ngx_feature_path"

    if [ $USE_LIBXSLT = YES ]; then
        CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
    fi

    NGX_LIB_LIBXSLT=$ngx_feature_libs

else

cat << END

$0: error: the HTTP XSLT module requires the libxml2/libxslt
libraries. You can either do not enable the module or install the libraries.

END

    exit 1
fi


    ngx_feature="libexslt"
    ngx_feature_name=NGX_HAVE_EXSLT
    ngx_feature_run=no
    ngx_feature_incs="#include <libexslt/exslt.h>"
    ngx_feature_path="/usr/include/libxml2"
    ngx_feature_libs="-lexslt"
    ngx_feature_test="exsltRegisterAll();"
    . auto/feature

if [ $ngx_found = no ]; then

    # FreeBSD port

    ngx_feature="libexslt in /usr/local/"
    ngx_feature_path="/usr/local/include/libxml2 /usr/local/include"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lexslt"
    else
        ngx_feature_libs="-L/usr/local/lib -lexslt"
    fi

    . auto/feature
fi


if [ $ngx_found = no ]; then

    # NetBSD port

    ngx_feature="libexslt in /usr/pkg/"
    ngx_feature_path="/usr/pkg/include/libxml2 /usr/local/include"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lexslt"
    else
        ngx_feature_libs="-L/usr/pkg/lib -lexslt"
    fi

    . auto/feature
fi


if [ $ngx_found = no ]; then

    # MacPorts

    ngx_feature="libexslt in /opt/local/"
    ngx_feature_path="/opt/local/include/libxml2 /opt/local/include"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lexslt"
    else
        ngx_feature_libs="-L/opt/local/lib -lexslt"
    fi

    . auto/feature
fi


if [ $ngx_found = yes ]; then
    if [ $USE_LIBXSLT = YES ]; then
        CORE_LIBS="$CORE_LIBS -lexslt"
    fi

    NGX_LIB_LIBXSLT="$NGX_LIB_LIBXSLT -lexslt"
fi