ACME#

Added in version 1.10.0.

Permite la adquisición automática de certificados utilizando el protocolo ACME para servidores definidos en el contexto stream.

Cuando se compila desde el código fuente, este módulo no se compila por defecto; debe habilitarse con la opción de compilación --with-stream_acme_module (también requiere --with-http_acme_module).

En paquetes e imágenes de nuestros repositorios, el módulo está incluido en la compilación.

Nota

Para un correcto funcionamiento, el bloque stream debe ubicarse después del bloque http. Esto se debe a que el módulo stream utiliza definiciones de cliente creadas durante el análisis de la configuración HTTP.

Ejemplo de configuración#

En este ejemplo, los certificados obtenidos por el cliente ACME example (declarado en el bloque http) protegen un servidor TCP mediante la validación HTTP predeterminada:

# Parte HTTP
http {

    resolver 127.0.0.53;

    # Cliente ACME para la parte stream
    acme_client example https://acme-v02.api.letsencrypt.org/directory;

    # Servidor para validación HTTP
    server {

        listen 80;
        return 444;
    }
}

# Parte Stream
stream {

    server {

        listen 12345 ssl;
        proxy_pass backend_upstream;

        ssl_certificate $acme_cert_example;
        ssl_certificate_key $acme_cert_key_example;

        server_name example.com www.example.com;
        acme example; # referencia al cliente ACME definido en la parte HTTP
    }

    upstream backend_upstream {

        server 127.0.0.1:54321;
    }
}

Para ejemplos de configuración e instrucciones de configuración, incluida la validación DNS, consulte la sección ACME en el módulo stream.

Directivas#

acme#

Sintaxis

acme name;

Predeterminado

—

Contexto

server

Especifica el cliente ACME del módulo HTTP que obtiene un certificado para los identificadores de certificado válidos de este bloque server. Un único certificado cubre todos los nombres de dominio válidos y las direcciones IP especificados en las directivas server_name de todos los bloques server que hacen referencia al cliente con el name dado; si la configuración de server_name cambia, el certificado se actualizará para reflejar los cambios.

Cada vez que Angie se inicia o recarga su configuración, se solicitan nuevos certificados para todos los identificadores que carecen de un certificado válido. Las posibles razones incluyen la caducidad del certificado, archivos faltantes o la imposibilidad de leerlos, y cambios en la configuración del certificado.

Nota

Actualmente, los dominios especificados mediante expresiones regulares no son compatibles y serán omitidos.

Los dominios comodín solo son compatibles en el modo challenge=dns en acme_client.

Las direcciones IPv4 e IPv6 son compatibles a menos que el cliente use challenge=dns. Con la validación DNS habilitada, las direcciones IP se omiten.

Esta directiva puede especificarse varias veces para cargar certificados de diferentes tipos, por ejemplo RSA y ECDSA:

server {

    listen 12345 ssl;
    server_name example.com www.example.com;

    ssl_certificate $acme_cert_rsa;
    ssl_certificate_key $acme_cert_key_rsa;

    ssl_certificate $acme_cert_ecdsa;
    ssl_certificate_key $acme_cert_key_ecdsa;

    acme rsa;
    acme ecdsa;
}

Variables integradas#

$acme_cert_<name>#

Contenido del último archivo de certificado (si existe) obtenido por el cliente con este name.

$acme_cert_key_<name>#

Contenido del archivo de clave del certificado utilizado por el cliente con este name.

Nota

El archivo del certificado está disponible solo si el cliente ACME ha obtenido al menos un certificado, mientras que el archivo de clave está disponible inmediatamente después del inicio.