

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
<a name="acm-acme-issuance"></a>

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
<a name="acm-acme-issuance-how-it-works"></a>

O fluxo de emissão do certificado ACME segue o protocolo RFC 8555:

1. **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.

1. **Pedido de certificado:** o cliente cria um pedido especificando os nomes de domínio para o certificado.

1. **Autorização:** o servidor ACME verifica as validações de domínio pré-configuradas. Como o endpoint usa `PRE_APPROVED` autorização, nenhum desafio real é exigido do cliente.

1. **Finalizar:** o cliente envia uma Solicitação de Assinatura de Certificado (CSR) para finalizar o pedido e o ACM emite o certificado.

1. **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
<a name="acm-acme-issuance-certbot-example"></a>

Este exemplo mostra como registrar uma conta ACME e solicitar um certificado usando o Certbot.

**Pré-requisitos**
+ Um endpoint ACME em `ACTIVE` status (você tem o URL do diretório)
+ Pelo menos uma validação de domínio em `VALID` status 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 \
    --email {{user@example.com}} \
    --server https://acm-acme-enroll.{{region}}.api.aws/{{00000000-0000-0000-0000-000000000000}}/directory \
    --eab-kid {{AAABBBCCC111222333}} \
    --eab-hmac-key {{base64encodedmackey}} \
    --issuance-timeout 120 \
    --domain {{www.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
<a name="acm-acme-issuance-certificates-in-acm"></a>

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 por`RequestCertificate`.

**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 `ListCertificates` resultados por padrão. Você deve incluir o `CertificateKeyPairOrigins` filtro com valor `ACME` para incluí-los. `SearchCertificates`retorna certificados ACME por padrão.
+ **Não é possível exportar por meio do ACM:** a `ExportCertificate` API 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 `RevokeCertificate` API 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
<a name="acm-acme-issuance-viewing"></a>

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, consulte[Pesquisar certificados](gs-acm-list.md).

**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
<a name="acm-acme-issuance-revoking"></a>

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, consulte[IAM para automação de certificados ACME](security-iam-acme.md).

## Renovação de certificado
<a name="acm-acme-issuance-renewal"></a>

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
```