SSLmentor

Certificados TLS/SSL de qualidade para sites e projetos de internet.

ACME

ACME

ACME

O protocolo ACME (Automatic Certificate Management Environment) é um padrão aberto da internet que permite a emissão, renovação e revogação totalmente automatizadas de certificados SSL. Graças ao ACME, os servidores web podem solicitar certificados por si próprios e renová-los automaticamente sem intervenção manual do administrador. As implementações de clientes ACME automatizam e simplificam significativamente a gestão de certificados numa altura em que os novos padrões estão a encurtar progressivamente a validade dos certificados SSL/TLS para um máximo de 47 dias até 2029.

O que é o protocolo ACME?

O ACME é um protocolo definido no RFC 8555 (publicado em 2019), que padroniza a comunicação entre um cliente (servidor web ou ferramenta de gestão de certificados) e uma autoridade de certificação (CA). Foi originalmente concebido e popularizado pela autoridade de certificação Let's Encrypt, que emite certificados DV gratuitos através do ACME.

O protocolo funciona segundo um princípio de challenge – response: o cliente prova à autoridade de certificação (CA) que controla efetivamente o domínio para o qual está a solicitar um certificado. Após a verificação bem-sucedida, a CA emite automaticamente o certificado. Todo o processo demora muito pouco tempo.

A abreviatura ACME significa Automatic Certificate Management Environment.

Como funciona o ACME?

A comunicação entre o cliente ACME e a autoridade de certificação (CA) ocorre exclusivamente através de HTTP REST API. O cliente e a CA trocam mensagens em formato JSON. Todo o processo pode ser resumido nos seguintes passos.

  • Ativação da conta – O cliente ACME liga-se à CA utilizando credenciais EAB (external account binding). Envia o Key identifier (KID) e a chave HMAC.
  • Pedido de certificado (Order) – O cliente envia à CA uma lista de domínios para os quais solicita um certificado. A CA devolve uma lista de desafios que o cliente tem de completar para cada domínio.
  • Completar o desafio (Challenge) – O cliente escolhe um dos tipos de desafio oferecidos (HTTP-01, DNS-01, TLS-ALPN-01) e realiza a ação necessária – coloca um token no servidor ou define um registo DNS.
  • Verificação pela CA – A CA verifica automaticamente se o desafio foi completado (visita o URL, verifica o registo DNS, etc.). A verificação bem-sucedida confirma a autorização do domínio.
  • Emissão do certificado – O cliente envia um pedido de certificado (CSR). A CA assina o certificado e envia-o de volta ao cliente em formato PEM.
  • Renovação automática – O cliente ACME configura a renovação regular na sua configuração. O certificado é normalmente renovado com suficiente antecedência em relação à expiração para evitar interrupções de HTTPS.

Tipos de desafios ACME

Para que a autoridade de certificação (CA) verifique que o requerente controla efetivamente o domínio, o protocolo ACME oferece três tipos de desafio padronizados:

HTTP-01

O cliente ACME coloca um ficheiro especial (token) no servidor web no diretório /.well-known/acme-challenge/. A CA verifica então a sua disponibilidade através de HTTP na porta 80. Este é o método de verificação mais utilizado.

Limitações: Não funciona para certificados WildCard. O domínio tem de estar publicamente acessível na porta 80.

DNS-01

O cliente cria um registo TXT especial no DNS do domínio na forma _acme-challenge.domenaxyz.cz com um token único da CA. A CA verifica o registo através do DNS. Este método de verificação permite obter um certificado WildCard.

Limitações: Requer acesso aos registos DNS do domínio. Pode ser mais lento devido à propagação das alterações de DNS.

TLS-ALPN-01

A verificação ocorre através de TLS na porta 443 utilizando a extensão ALPN (Application-Layer Protocol Negotiation). O cliente disponibiliza temporariamente um certificado especial com o token ACME.

Limitações: Pode ser complicado para alguns ambientes de alojamento.

Clientes ACME – visão geral das ferramentas

Existe uma vasta gama de ferramentas prontas a usar para trabalhar com o protocolo ACME.

Certbot

O cliente ACME mais popular da EFF.org. Integração automática com Apache e Nginx. Suporte para Linux e macOS. O Certbot é uma ferramenta amplamente utilizada e bem documentada que oferece comandos simples para obter e renovar certificados. Também tem um amplo suporte para vários servidores web e ambientes de alojamento.

acme.sh

Um cliente ACME minimalista escrito em shell com suporte para mais de 150 fornecedores de DNS. Linux, macOS, FreeBSD. O acme.sh foca-se na simplicidade e na ampla compatibilidade.

win-acme

Um cliente ACME para Windows com integração com IIS. Suporta tanto interface gráfica como linha de comandos. O win-acme é ideal para gerir certificados em servidores Windows, especialmente com IIS.

Lego

Um cliente ACME escrito em Go. Adequado para integração personalizada e scripting. O Lego é um cliente ACME flexível que pode ser facilmente integrado em sistemas e scripts personalizados graças à sua implementação na linguagem Go.

Voltar para Ajuda
Encontrou um erro ou não entendeu algo? Escreva para nós!

CA Sectigo
CA RapidSSL
CA Thawte
CA GeoTrust
CA DigiCert
CA Certum