Ir para o conteúdo

Como resolvo um erro de expiração de certificado do Let's Encrypt na minha instância do Amazon EC2?

4 minuto de leitura
0

Não consigo me conectar a um URL remoto da minha instância do Amazon Elastic Compute Cloud (Amazon EC2) que tenha um certificado do Let's Encrypt. Ou recebo uma mensagem de erro que diz que meu certificado do Let's Encrypt expirou.

Breve descrição

Se seu certificado DST Root CA X3 com assinatura cruzada do Let's Encrypt expirou, você receberá um erro de certificado expirado. Para resolver esse problema, faça upgrade no pacote do seu sistema operacional (SO).

Para fins de compatibilidade, os certificados do Let's Encrypt usam uma cadeia de certificados com assinatura cruzada pelo certificado DST Root CA X3 que expirou em 30 de setembro de 2021. O OpenSSL 1.0.2 prefere a cadeia não confiável. Isso significa que o processo de validação da certificação OpenSSL vê o certificado expirado e desconfia que toda a cadeia esteja expirada. Servidores com OpenSSL 1.0.2 e o certificado DST Root CA X3 em seu armazenamento raiz não podem emitir ou renovar certificados do Let's Encrypt. Os servidores afetados também não podem acessar os servidores que usam os certificados do Let's Encrypt.

As instâncias do EC2 que executam o seguinte sistema operacional podem encontrar problemas com os certificados do Let's Encrypt:

  • CentOS e Red Hat Enterprise Linux (RHEL) 7 ou inferior
  • Amazon Linux 1 (AL1) e Amazon Linux 2 (AL2)
  • Ubuntu 16.04 ou inferior
  • Debian 8 ou inferior

Resolução

Atualize o pacote no Ubuntu

No Ubuntu 16.04, atualize o OpenSSL para a versão 1.0.2g-1ubuntu4.20 ou posterior. Para obter mais informações, consulte Expiring trust anchor compatibility issue (Problema de compatibilidade com âncoras de confiança expiradas) no site do Launchpad.

Observação: as versões do Ubuntu anteriores à 16.04 estão no fim da vida útil. O Ubuntu não oferece suporte a essas versões, mesmo que a intervenção manual seja possível.

Atualize o pacote em AL1 ou AL2

Em AL1 ou AL2, é possível reexecutar a instância para aplicar automaticamente o pacote ca-certificate atualizado.

Para atualizar uma instância existente, execute o comando a seguir para atualizar os ca-certificates:

sudo yum update ca-certificates

Se você usar uma imagem de máquina da Amazon (AMI) com um GUID de repositório bloqueado, como o AWS Elastic Beanstalk, deve instalar um pacote ca-certificates atualizado. Execute um dos seguintes comandos com base na sua versão do Amazon Linux.

AL1:

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

AL2:

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

É uma prática recomendada usar o comando yum para atualizar instâncias existentes. No entanto, para modificar o sistema em vigor, execute um dos seguintes comandos:

AL1:

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

AL2:

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

Atualize o pacote no RHEL ou CentOS

No RHEL 7 e CentOS 7, atualize o pacote ca-certificates para 2021.2.50-72.el7_9 ou posterior. Para obter instruções, consulte How do I apply package updates to my RHEL system? (Como aplico atualizações de pacotes ao meu sistema RHEL?) no site da Red Hat.

Se você ainda encontrar problemas em sua instância do RHEL após o upgrade, deve bloquear manualmente o certificado DST Root CA X3. Conclua as etapas a seguir:

  1. Execute o comando a seguir para fazer backup do repositório raiz existente:

    cp -i /etc/pki/tls/certs/ca-bundle.crt ~/ca-bundle.crt-backup
  2. Execute o comando a seguir para adicionar 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. Execute o comando a seguir para atualizar o repositório raiz:

    sudo update-ca-trust extract
  4. Execute o comando a seguir para verificar se você removeu o certificado:

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

Informações relacionadas

Extending Android device compatibility for Let's Encrypt certificates (Estendendo a compatibilidade de dispositivos Android em certificados do Let's Encrypt) no site do Let's Encrypt

AWS OFICIALAtualizada há 6 meses