Por que estou recebendo um erro de validade de certificado para o certificado Let’s Encrypt na instância do EC2?

Última atualização: 01/10/2021

Não consigo me conectar a um URL remoto de minha instância do Amazon Elastic Compute Cloud (Amazon EC2) que tenha um certificado Let's Encrypt. Ou, estou recebendo um erro de que meu certificado Let's Encrypt expirou. Como corrijo isso?

Descrição breve

Algumas instâncias do EC2 estão enfrentando erros de certificado expirados devido a um DST Root CA X3 com assinatura cruzada e expirada do Let's Encrypt. As instâncias que executam os seguintes sistemas operacionais talvez não consigam se conectar a servidores usando certificados Let's Encrypt. Estes sistemas operacionais também podem não conseguir acessar os endpoints Let's Encrypt para emitir ou renovar certificados após 30 de setembro de 2021:

  • CentOS e RHEL 7 ou inferior
  • Amazon Linux e Amazon Linux 2
  • Ubuntu 16.04 ou inferior
  • Debian 8 ou inferior

Para fins de compatibilidade, os certificados Let's Encrypt usam como padrão uma cadeia de certificados assinada pelo certificado DST Root CA X3 com assinatura cruzada que expirou em 30 de setembro de 2021.

Com o OpenSSL 1.0.2, a cadeia não confiável é sempre preferida. Isso significa que o certificado expirado é visto e toda a cadeia é desconfiada como expirada. Os servidores com a versão afetada do OpenSSL e o certificado DST Root CA X3 em seu armazenamento raiz não podem emitir ou renovar certificados Let's Encrypt. Os servidores afetados também não podem acessar os servidores que estão usando.

Resolução

Este problema foi corrigido no Ubuntu 16.04 com uma versão recente do pacote OpenSSL. O Amazon Linux e a Red Hat também lançaram novos pacotes ca-certificates que negam o certificado expirado.

Atualizações de pacotes:

Ubuntu 16.04: atualize o OpenSSL para a versão 1.0.2g-1ubuntu4.20 ou para uma mais recente.

Amazon Linux e Amazon Linux 2: as instâncias do Amazon Linux podem ser reiniciadas para aplicar automaticamente o pacote de certificados de autoridade de certificação atualizado. Caso seja necessário atualizar as instâncias existentes, os clientes poderão atualizar os certificados de autoridade de certificação executando o seguinte:

sudo yum update ca-certificates

Observação: para clientes que usam uma AMI com uma GUID de repositório bloqueada, como o Elastic Beanstalk, é possível instalar o pacote de certificados de autoridade de certificação atualizado usando os seguintes comandos:

Amazon Linux 1

sudo yum install https://cdn.amazonlinux.com/patch/ca-certificates-update-2021-09-30/ca-certificates-2018.2.22-65.1.24.amzn1.noarch.rpm

Amazon Linux 2

sudo yum install https://cdn.amazonlinux.com/patch/ca-certificates-update-2021-09-30/ca-certificates-2021.2.50-72.amzn2.0.1.noarch.rpm

Red Hat e CentOS 7: atualize o pacote de certificados de autoridade de certificação para 2021.2.50-72.el7_9 ou posterior.

Observação: as versões do Ubuntu menores que 16.04 estão no fim da vida útil. A intervenção manual pode ser possível, mas não é suportada.

Correção manual para sistemas baseados no Amazon Linux

Recomendamos atualizar as instâncias existentes usando o comando yum acima. Se, por algum motivo, você preferir modificar o sistema implantado, use os seguintes comandos:

Amazon Linux 1

sudo sed -i'' '/Alias: DST Root CA X3/,/No Rejected Uses./d' /usr/share/pki/ca-trust-source/ca-bundle.trust.crt
sudo update-ca-trust

Amazon Linux 2

sudo sed -i'' '/DST Root CA X3/,/\[p11-kit-object-v1\]/d' /usr/share/pki/ca-trust-source/ca-bundle.trust.p11-kit 
sudo update-ca-trust

Correção manual para sistemas baseados em Red Hat

1.    Faça backup do armazenamento raiz existente:

cp -i /etc/pki/tls/certs/ca-bundle.crt ~/ca-bundle.crt-backup

2.    Adicione o certificado ao diretório da lista de negações:

trust dump --filter "pkcs11:id=%c4%a7%b1%a4%7b%2c%71%fa%db%e1%4b%90%75%ff%c4%15%60%85%89%10" | openssl x509 | sudo tee /etc/pki/ca-trust/source/blacklist/DST-Root-CA-X3.pem

3.    Atualize o armazenamento raiz:

sudo update-ca-trust extract

4.    Verifique a remoção dos certificados:

diff ~/ca-bundle.crt-backup /etc/pki/tls/certs/ca-bundle.crt

Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?