ACME#
Fornece recuperação automática de certificados usando o protocolo ACME.
Ao compilar a partir do código-fonte, o módulo não é compilado por padrão;
ele deve ser habilitado com a opção de compilação
Exemplos de configuração e instruções de configuração podem ser encontrados na seção Configuração ACME. Para todos os domínios especificados nas diretivas server_name
em todos os blocos server
que referenciam o cliente ACME com o name fornecido,
um único certificado será obtido;
se a configuração Cada vez que o Angie inicia, novos certificados são solicitados para todos os domínios
que não possuem um certificado válido.
Possíveis razões incluem expiração do certificado,
arquivos ausentes ou ilegíveis,
e mudanças nas configurações do certificado. Nota Atualmente, domínios especificados com expressões regulares
não são suportados e serão ignorados. Domínios curinga são suportados apenas com Esta diretiva pode ser especificada múltiplas vezes
para carregar certificados de diferentes tipos, por exemplo RSA e ECDSA: Padrão — http Define um cliente ACME com um name globalmente único.
Ele deve ser válido para um diretório,
é uma string com variáveis,
e será usado sem distinção entre maiúsculas e minúsculas. Dica O nome do cliente especificado aqui o identifica na configuração do Angie,
permitindo que você combine as diretivas O segundo parâmetro obrigatório é o uri do diretório ACME.
Por exemplo, o URI do diretório ACME do Let's Encrypt é especificado
como
https://acme-v02.api.letsencrypt.org/directory. Nota O módulo ACME adiciona um Para que esta diretiva funcione,
um resolver deve ser configurado no mesmo contexto. Nota Para fins de teste,
as autoridades certificadoras geralmente fornecem ambientes de teste separados.
Por exemplo, o ambiente de teste do Let's Encrypt
é
https://acme-staging-v02.api.letsencrypt.org/directory. Habilita ou desabilita a renovação de certificados para o cliente;
isso é útil, por exemplo, para suspender temporariamente
sem remover o cliente da configuração. Padrão: O tipo de algoritmo de chave privada para o certificado.
Valores válidos: Padrão: Número de bits na chave do certificado.
Padrão: 256 para Endereço de email opcional para feedback;
usado ao criar uma conta no servidor da CA. Especifica o tamanho máximo permitido de um novo arquivo de certificado em bytes
para reservar espaço para o novo certificado na memória compartilhada;
quanto mais domínios o certificado for solicitado,
mais espaço será necessário. Se um certificado já existir na inicialização
mas seu tamanho exceder o valor Se o tamanho de um certificado obtido durante a renovação
exceder Padrão: Tempo antes da expiração do certificado
quando a renovação deve começar. Padrão: Especifica que o certificado deve ser renovado forçadamente
cada vez que a configuração for carregada. Tempo para aguardar antes de tentar novamente
se a recuperação do certificado falhar.
Se definido como Padrão: Especifica o tipo de verificação para o cliente ACME.
Valores válidos: Padrão: Especifica o caminho completo para um arquivo contendo uma chave em formato PEM.
Isso é útil se você quiser usar uma chave de conta existente
em vez de geração automática,
ou se precisar usar uma chave para múltiplos clientes ACME. Tipos de chave suportados: Chaves RSA com comprimentos que são múltiplos de 8, variando de 2048 a 8192 bits. Chaves ECDSA com comprimentos de 256, 384 ou 521 bits. Ao especificar o parâmetro Note que as chaves para clientes ACME são criadas na ordem
em que os clientes correspondentes são mencionados na configuração
nas diretivas acme_client, acme ou acme_hook.
Portanto, se um cliente deve usar uma chave
criada para outro,
esse outro cliente deve aparecer antes na configuração. Além disso, as chaves são criadas apenas para clientes
que têm o parâmetro Substitui o path para o diretório de armazenamento de certificados e chaves,
definido durante a compilação usando o parâmetro de compilação
Especifica a porta
que o módulo usa para lidar com consultas DNS do servidor ACME sobre UDP.
O número da porta deve estar no intervalo de 1 a 65535. Especificar um endereço IP junto com uma porta opcional também é suportado.
Tanto endereços IPv4 na forma Para usar o número de porta 1024 ou inferior,
o Angie deve executar com privilégios de superusuário. A diretiva vincula o servidor ao cliente ACME especificado.
Chamadas de manipulador (hook) implementadas por um serviço externo
são feitas através do contexto name Especifica o cliente ACME correspondente. uri Uma string com variáveis;
especifica a string de solicitação para chamadas de manipulador. Padrão: Por exemplo, a seguinte configuração passa os valores das variáveis de hook
para uma aplicação FastCGI através da string de solicitação: Conteúdo do último arquivo de certificado (se houver)
obtido pelo cliente com este name. Conteúdo do arquivo de chave do certificado
usado pelo cliente com este name. Nota O arquivo de certificado está disponível
apenas se o cliente ACME obteve pelo menos um certificado,
mas o arquivo de chave está disponível imediatamente após a inicialização. O tipo de desafio. Valores possíveis: O nome do cliente ACME que inicia a solicitação. O domínio sendo verificado.
Se for um domínio curinga, será passado sem o prefixo A string de autorização: Para desafio DNS, é usada como o valor do registro TXT,
cujo nome é formado como
Para desafio HTTP, esta string deve ser usada
como o conteúdo da resposta solicitada pelo servidor ACME. O nome do hook. Para diferentes tipos de desafio, pode ter diferentes valores e significados: Valor Significado para desafio DNS Significado para desafio HTTP O registro TXT correspondente deve ser adicionado à configuração DNS. Uma resposta à solicitação HTTP correspondente deve ser preparada. O registro TXT pode ser removido da configuração DNS. Esta solicitação HTTP não é mais relevante;
o arquivo criado anteriormente com a string de autorização pode ser removido. O token de verificação.
Para desafio HTTP, é usado como o nome do arquivo solicitado:
--with-http_acme_module
.
Em pacotes e imagens de
nossos repositórios,
o módulo está incluído na compilação.Exemplo de Configuração#
Diretivas#
acme#
server_name
mudar,
o certificado será renovado para refletir as mudanças.challenge=dns
em acme_client
.server {
listen 443 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;
}
acme_client#
acme_client
name uri [enabled=
on
| off
] [key_type=
type] [key_bits=
number] [email=
email] [max_cert_size=
number] [renew_before_expiry=
time] [renew_on_load
] [retry_after_error=
off|time] [challenge=
dns
| http
] [account_key=
file];acme_client
, acme,
e variáveis do módulo que usam este nome;
não o confunda com seu domínio ou nome do servidor.location @acme
nomeado
ao contexto do client,
que pode ser usado para configurar solicitações ao diretório ACME;
por padrão, este location
contém uma diretiva proxy_pass com o uri do diretório,
ao qual outras configurações do módulo Proxy podem ser adicionadas.enabled
on
.key_type
rsa
, ecdsa
.ecdsa
.key_bits
ecdsa
, 2048 para rsa
.email
max_cert_size
max_cert_size
,
o valor max_cert_size
é aumentado dinamicamente
para corresponder ao tamanho do arquivo de certificado existente.max_cert_size
,
o processo de renovação falhará com um erro.8192
.renew_before_expiry
30d
.renew_on_load
retry_after_error
off
,
o cliente não tentará obter o certificado novamente após um erro.2h
.challenge
dns
, http
.http
.account_key
account_key
,
certifique-se de que o arquivo de chave realmente existe.
Se o arquivo estiver ausente,
o Angie tentará criá-lo no caminho especificado.enabled=on
definido.acme_client_path#
--http-acme-client-path
.acme_dns_port#
ip:port
quanto endereços IPv6 na forma [ip6]:port
podem ser usados:acme_dns_port 8053;
acme_dns_port 127.0.0.1;
acme_dns_port [::1];
acme_hook#
location
onde está localizado./
.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 ...;
Variáveis 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 adição)remove
(hook de remoção)$acme_hook_token
#/.well-known/acme-challenge/
+ $acme_hook_token
.