As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Emissão de certificados por meio da ACME
Depois que seu administrador de PKI configura um endpoint ACME com validações de domínio e associações de contas externas, os proprietários de aplicativos podem usar clientes ACME para emitir certificados. Esta seção descreve o fluxo de emissão, fornece um breve exemplo do uso do Certbot e explica como os ACME-issued certificados aparecem no ACM.
Como funciona a emissão
O fluxo de emissão do certificado ACME segue o protocolo RFC 8555:
-
Registro da conta: O cliente ACME registra uma conta usando as credenciais do EAB (ID da chave e chave MAC). Essa é uma etapa única por cliente ACME.
-
Pedido de certificado: o cliente cria um pedido especificando os nomes de domínio para o certificado.
-
Autorização: o servidor ACME verifica as validações de domínio pré-configuradas. Como o endpoint usa
PRE_APPROVEDautorização, nenhum desafio real é exigido do cliente. -
Finalizar: o cliente envia uma Solicitação de Assinatura de Certificado (CSR) para finalizar o pedido e o ACM emite o certificado.
-
Download: o cliente baixa a cadeia de certificados emitida.
Importante
A chave privada é gerada pelo cliente ACME e nunca sai do sistema do cliente.
Exemplo: emissão de um certificado com o Certbot
Este exemplo mostra como registrar uma conta ACME e solicitar um certificado usando o Certbot.
Pré-requisitos
-
Um endpoint ACME em
ACTIVEstatus (você tem o URL do diretório) -
Pelo menos uma validação de domínio em
VALIDstatus para o domínio que você deseja -
Credenciais EAB (ID da chave e chave MAC) do seu administrador de PKI
-
Certbot instalado em seu sistema
Para registrar uma conta e solicitar um certificado
Importante
A emissão do certificado por meio do endpoint ACM ACME pode levar até dois minutos. Configure o tempo limite de emissão do seu cliente ACME em pelo menos 120 segundos (2 minutos) para evitar que o cliente atinja o tempo limite antes da entrega do certificado. Muitos clientes ACME usam como padrão 30 a 90 segundos, o que não é suficiente.
Execute este comando: .
certbot certonly \ --standalone \ --non-interactive \ --agree-tos \ --emailuser@example.com\ --server https://acm-acme-enroll.region.api.aws/00000000-0000-0000-0000-000000000000/directory \ --eab-kidAAABBBCCC111222333\ --eab-hmac-keybase64encodedmackey\ --issuance-timeout 120 \ --domainwww.example.com
Após a emissão bem-sucedida, o Certbot armazena o certificado e a chave privada em seu local padrão (normalmente). /etc/letsencrypt/live/www.example.com/
Certificados ACME no ACM
Os certificados emitidos pela ACME recebem automaticamente um ARN padrão do certificado ACM e aparecem no inventário de certificados do ACM. No entanto, ACME-issued os certificados têm diferenças importantes em relação aos certificados emitidos porRequestCertificate.
Principais diferenças
-
A chave privada é do lado do cliente: a chave privada do certificado é gerada e armazenada pelo cliente ACME. O ACM não tem acesso à chave privada.
-
Não é possível se vincular a serviços integrados: como AWS não contém a chave privada, os certificados ACME não podem ser usados com o Elastic Load Balancing ou o API CloudFront Gateway.
-
Não está na saída da lista padrão: os certificados ACME não aparecem nos
ListCertificatesresultados por padrão. Você deve incluir oCertificateKeyPairOriginsfiltro com valorACMEpara incluí-los.SearchCertificatesretorna certificados ACME por padrão. -
Não é possível exportar por meio do ACM: a
ExportCertificateAPI não pode ser usada porque o certificado já foi exportado por definição, pois o cliente o possui. -
Revogação somente por meio da ACME: use a URL revoke-cert do endpoint da ACME. A
RevokeCertificateAPI do ACM não funciona para ACME-issued certificados. -
A renovação é orientada pelo cliente: o ACM não renova automaticamente os certificados ACME. O cliente ACME deve solicitar um novo certificado antes que o existente expire.
Visualizando certificados ACME
No console do ACM, use o filtro para incluir certificados com uma origem de par de chaves ACME. Para obter mais informações sobre como encontrar certificados, consultePesquisar certificados.
Para listar os certificados ACME (AWS CLI)
Use list-certificates com o CertificateKeyPairOrigins filtro:
aws acm list-certificates \ --certificate-key-pair-origins ACME
Para pesquisar certificados ACME (AWS CLI)
Use search-certificates com o CertificateKeyPairOrigin filtro para encontrar certificados ACME por critérios adicionais:
aws acm search-certificates \ --filter-statement '{"Filter": {"AcmCertificateMetadataFilter": {"CertificateKeyPairOrigin": "ACME"}}}'
Você também pode pesquisar certificados emitidos por meio de um endpoint específico ou conta ACME filtrando em ou. AcmeEndpointArn AcmeAccountId
Para ver os detalhes do certificado (AWS CLI)
Execute este comando: .
aws acm describe-certificate \ --certificate-arn arn:aws:acm:region:account-id:certificate/certificate-id
Revogando certificados ACME
Para revogar um certificado emitido pela ACME, use o endpoint revoke-cert do protocolo ACME. O cliente ACME lida com isso.
nota
ACME-issued os certificados não podem ser revogados usando a API do ACM. RevokeCertificate Você deve revogar esses certificados por meio do endpoint ACME que os emitiu.
O exemplo a seguir mostra a revogação usando o Certbot:
certbot revoke \ --cert-path /etc/letsencrypt/live/www.example.com/cert.pem \ --server https://acm-acme-enroll.region.api.aws/00000000-0000-0000-0000-000000000000/directory
A revogação é autorizada pela função do IAM associada à vinculação da conta externa do cliente, portanto, as mesmas políticas e SCPs do IAM que se aplicam à acm:RevokeCertificate ação padrão se aplicam aqui. Para obter mais informações sobre a configuração de função do IAM necessária, consulteIAM para automação de certificados ACME.
Renovação de certificado
Os certificados ACME não são renovados pelo ACM. Seu cliente ACME é responsável por solicitar um novo certificado antes que o atual expire. A maioria dos clientes da ACME (incluindo o Certbot) oferece suporte à renovação automática por meio de tarefas agendadas (como tarefas cron ou cronômetros systemd).
Estabilidade do ARN em todas as renovações
Quando um cliente ACME renova um certificado, o ACM determina se a nova emissão é uma renovação de um certificado existente ou de um certificado distinto. Se a emissão vier da mesma conta ACME com os mesmos metadados de certificado (como nomes de domínio e algoritmo de chave), o ACM atualizará o ARN do certificado existente em vez de criar um novo. Isso mantém o ARN estável em todas as renovações, o que simplifica o rastreamento e a automação.
Se o certificado original tiver sido removido do ACM (por exemplo, porque expirou há mais de um ano e foi excluído automaticamente), uma emissão subsequente com os mesmos metadados criará um novo ARN do certificado.
Exemplo de renovação automática do Certbot (normalmente configurado automaticamente durante a instalação do Certbot):
certbot renew --quiet