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.

Al compilar desde el código fuente, el módulo no se compila por defecto; debe ser habilitado con el parámetro 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

Para todos los dominios especificados en las directivas server_name en todos los bloques server que hagan referencia a un cliente ACME del módulo HTTP con el name dado, se obtendrá un único certificado; si la configuración de server_name cambia, el certificado se actualizará para reflejar los cambios.

En cada inicio de Angie o recarga de configuración, se solicitarán nuevos certificados para todos los dominios que carezcan 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.

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.