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#
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.