ACME#
Proporciona recuperación automática de certificados utilizando el protocolo ACME.
Cuando compila desde el código fuente, el módulo no se compila por defecto;
debe habilitarse con la opción de compilación
Los ejemplos de configuración e instrucciones de configuración se pueden encontrar en la sección Configuración de ACME. Para todos los dominios especificados en las directivas server_name
en todos los bloques server
que hacen referencia al cliente ACME con el nombre dado,
se obtendrá un único certificado;
si la configuración Cada vez que Angie se inicia, se solicitan nuevos certificados para todos los dominios
que carecen de un certificado válido.
Las posibles razones incluyen la caducidad del certificado,
archivos faltantes o ilegibles,
y cambios en la configuración del certificado. Nota Actualmente, los dominios especificados con expresiones regulares
no son compatibles y serán omitidos. Los dominios comodín solo son compatibles con Esta directiva puede especificarse varias veces
para cargar certificados de diferentes tipos, por ejemplo RSA y ECDSA: Predeterminado — http Define un cliente ACME con un nombre único a nivel global.
Debe ser válido para un directorio,
es una cadena con variables,
y se utilizará sin distinción entre mayúsculas y minúsculas. Truco El nombre del cliente especificado aquí lo identifica en la configuración de Angie,
permitiéndote hacer coincidir las directivas El segundo parámetro obligatorio es la uri del directorio ACME.
Por ejemplo, la URI del directorio ACME de Let's Encrypt está especificada
como
https://acme-v02.api.letsencrypt.org/directory. Nota El módulo ACME añade una Para que esta directiva funcione,
debe configurarse un resolver en el mismo contexto. Nota Para fines de prueba,
las autoridades de certificación suelen proporcionar entornos de staging separados.
Por ejemplo, el entorno de staging de Let's Encrypt
<https://letsencrypt.org/docs/staging-environment/> es
https://acme-staging-v02.api.letsencrypt.org/directory. Nota Para fines de prueba,
las autoridades de certificación suelen proporcionar entornos de staging separados.
Por ejemplo, el entorno de staging de Let's Encrypt
<https://letsencrypt.org/docs/staging-environment/> es
https://acme-staging-v02.api.letsencrypt.org/directory. Habilita o deshabilita la renovación de certificados para el cliente;
esto es útil, por ejemplo, para suspender temporalmente
sin eliminar el cliente de la configuración. Predeterminado: El tipo de algoritmo de clave privada para el certificado.
Valores válidos: Predeterminado: Número de bits en la clave del certificado.
Predeterminado: 256 para Dirección de correo electrónico opcional para retroalimentación;
se utiliza al crear una cuenta en el servidor CA. Especifica el tamaño máximo permitido de un nuevo archivo de certificado en bytes
para reservar espacio para el nuevo certificado en memoria compartida;
cuantos más dominios se soliciten para el certificado,
más espacio se requiere. Si un certificado ya existe al inicio
pero su tamaño excede el valor de Si el tamaño de un certificado obtenido durante la renovación
excede Predeterminado: Tiempo antes de la expiración del certificado
cuando debe comenzar la renovación. Predeterminado: Especifica que el certificado debe renovarse forzosamente
cada vez que se carga la configuración. Tiempo de espera antes de reintentar
si la obtención del certificado falló.
Si se establece en Predeterminado: Especifica el tipo de verificación para el cliente ACME.
Valores válidos: Predeterminado: Especifica la ruta completa a un archivo que contiene una clave en formato PEM.
Esto es útil si desea utilizar una clave de cuenta existente
en lugar de la generación automática,
o si necesita utilizar una clave para múltiples clientes ACME. Tipos de claves soportados: Claves RSA con longitudes que son múltiplos de 8, desde 2048 hasta 8192 bits. Claves ECDSA con longitudes de 256, 384 o 521 bits. Al especificar el parámetro Tenga en cuenta que las claves para los clientes ACME se crean en el orden
en que se mencionan los clientes correspondientes en la configuración
en las directivas acme_client, acme o acme_hook.
Por lo tanto, si un cliente debe usar una clave
creada para otro,
ese otro cliente debe aparecer antes en la configuración. Además, las claves solo se crean para clientes
que tienen el parámetro Anula la ruta al directorio para almacenar certificados y claves,
establecida durante la compilación usando el parámetro de compilación
Especifica el puerto
que el módulo utiliza para manejar consultas DNS desde el servidor ACME a través de UDP.
El número de puerto debe estar en el rango de 1 a 65535. También se admite especificar una dirección IP junto con un puerto opcional.
Se pueden utilizar tanto direcciones IPv4 en la forma Para usar un número de puerto 1024 o inferior,
Angie debe ejecutarse con privilegios de superusuario. La directiva vincula el servidor al cliente ACME especificado.
Las llamadas al manejador (hook) implementadas por un servicio externo
se realizan a través del contexto name Especifica el cliente ACME correspondiente. uri Una cadena con variables;
especifica la cadena de solicitud para las llamadas al manejador. Predeterminado: Por ejemplo, la siguiente configuración pasa los valores de las variables de hook
a una aplicación FastCGI a través de la cadena de solicitud: Contenido del último archivo de certificado (si existe)
obtenido por el cliente con este name. Contenido del archivo de clave del certificado
utilizado por el cliente con este name. Nota El archivo de certificado está disponible
solo si el cliente ACME ha obtenido al menos un certificado,
pero el archivo de clave está disponible inmediatamente después del inicio. El tipo de desafío. Valores posibles: El nombre del cliente ACME que inicia la solicitud. El dominio que se está verificando.
Si es un dominio comodín, se pasará sin el prefijo La cadena de autorización: Para el desafío DNS, se utiliza como el valor del registro TXT,
cuyo nombre se forma como
Para el desafío HTTP, esta cadena debe utilizarse
como el contenido de la respuesta solicitada por el servidor ACME. El nombre del hook. Para diferentes tipos de desafío, puede tener diferentes valores y significados: Valor Significado para desafío DNS Significado para desafío HTTP El registro TXT correspondiente debe añadirse a la configuración DNS. Se debe preparar una respuesta a la solicitud HTTP correspondiente. El registro TXT puede eliminarse de la configuración DNS. Esta solicitud HTTP ya no es relevante;
el archivo creado previamente con la cadena de autorización puede eliminarse. El token de verificación.
Para el desafío HTTP, se utiliza como el nombre del archivo solicitado:
--with-http_acme_module
.
En paquetes e imágenes de
nuestros repositorios,
el módulo está incluido en la compilación.Ejemplo de Configuración#
Directivas#
acme#
server_name
cambia,
el certificado se renovará para reflejar los cambios.challenge=dns
en acme_client
.server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate $acme_cert_rsa;
ssl_certificate_key $acme_key_rsa;
ssl_certificate $acme_cert_ecdsa;
ssl_certificate_key $acme_key_ecdsa;
acme rsa;
acme ecdsa;
}
acme_client#
acme_client
nombre uri [enabled=
on
| off
] [key_type=
tipo] [key_bits=
número] [email=
email] [max_cert_size=
número] [renew_before_expiry=
tiempo] [renew_on_load
] [retry_after_error=
off|tiempo] [challenge=
dns
| http
] [account_key=
archivo];acme_client
, acme,
y las variables del módulo que usan este nombre;
no lo confundas con tu dominio o nombre de servidor.location @acme
con nombre
al contexto client,
que puede utilizarse para configurar solicitudes al directorio ACME;
por defecto, esta location
contiene una directiva proxy_pass con la uri del directorio,
a la que se pueden añadir otros ajustes del módulo Proxy.enabled
on
.key_type
rsa
, ecdsa
.ecdsa
.key_bits
ecdsa
, 2048 para rsa
.email
max_cert_size
max_cert_size
,
el valor de max_cert_size
se incrementa dinámicamente
para coincidir con el tamaño del archivo de certificado existente.max_cert_size
,
el proceso de renovación fallará con un error.8192
.renew_before_expiry
30d
.renew_on_load
retry_after_error
off
,
el cliente no reintentará obtener el certificado después de un error.2h
.challenge
dns
, http
.http
.account_key
account_key
,
asegúrese de que el archivo de clave realmente exista.
Si el archivo no existe,
Angie intentará crearlo en la ruta especificada.enabled=on
establecido.acme_client_path#
--http-acme-client-path
.acme_dns_port#
ip:port
como direcciones IPv6 en la forma [ip6]:port
:acme_dns_port 8053;
acme_dns_port 127.0.0.1;
acme_dns_port [::1];
acme_hook#
location
donde se encuentra./
.acme_hook example uri=/acme_hook/$acme_hook_name?domain=$acme_hook_domain&key=$acme_hook_keyauth;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_pass ...;
Variables integradas#
$acme_cert_<name>
#$acme_cert_key_<name>
#$acme_hook_challenge
#dns
, http
.$acme_hook_client
#$acme_hook_domain
#*.
.$acme_hook_keyauth
#_acme-challenge. + $acme_hook_domain + .
.$acme_hook_name
#add
(hook de adición)remove
(hook de eliminación)$acme_hook_token
#/.well-known/acme-challenge/
+ $acme_hook_token
.