Como instalo um certificado SSL Let's Encrypt curinga em uma pilha Bitnami hospedada no Amazon Lightsail?

Data da última atualização 20/10/2021

Como instalo um certificado SSL curinga para meu site em uma instância do Amazon Lightsail com uma pilha Bitnami?

Descrição breve

A resolução a seguir contempla a instalação de um certificado SSL Let's Encrypt curinga para sites hospedados em uma instância do Lightsail com uma pilha Bitnami. Exemplos destes projetos de instância incluem WordPress, LAMP, Magento, MEAN e assim por diante. Se você tiver um blueprint de instância diferente ou quiser instalar um certificado padrão, consulte um dos seguintes procedimentos:

Certificados padrão Let's Encrypt

Para obter informações sobre como instalar um certificado padrão Let's Encrypt em uma instância do Lightsail que não usa uma pilha Bitnami, como o Amazon Linux 2, Ubuntu e assim por diante, consulte Como instalo um certificado SSL padrão Let's Encrypt em uma instância do Lightsail? 

Para obter informações sobre como instalar um certificado SSL padrão Let's Encrypt (não um curinga) em uma instância do Lightsail com uma pilha Bitnami, como WordPress, LAMP, Magento e assim por diante, consulte Como instalar um certificado SSL padrão Let's Encrypt em uma pilha Bitnami hospedada no Amazon Lightsail?

Certificados curinga Let's Encrypt (por exemplo, *.example.com)

Para obter informações sobre como instalar um certificado curinga Let's Encrypt em uma instância do Lightsail que não usa uma pilha Bitnami, como o Amazon Linux 2, Ubuntu e assim por diante, consulte Como instalo um certificado SSL Let's Encrypt curinga no Amazon Lightsail?

Resolução

As etapas usadas para instalar um certificado SSL Let's Encrypt curinga em uma instância do Lightsail hospedada em Bitnami dependem de qual provedor de DNS seu domínio usa. Para determinar qual método usar, verifique se seu provedor de DNS está listado em Provedores de DNS na documentação da Lego. Em seguida, selecione o método apropriado a ser usado:

Método 1: use a ferramenta Lego fornecida pela Bitnami se o seu domínio usar um dos provedores de DNS listados.

Método 2: use o pacote Certbot se o seu domínio não estiver usando nenhum dos provedores de DNS listados.

Observação: os caminhos de arquivo mencionados neste artigo podem mudar dependendo se sua pilha Bitnami usa pacotes nativos do sistema Linux (Abordagem A) ou se é uma instalação independente (Abordagem B). Para identificar o tipo de instalação do Bitnami, execute o comando a seguir:

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

Método 1

Junto com o bncert-tool, a pilha Bitnami fornece a ferramenta Lego. Esta ferramenta suporta a criação de certificados SSL curinga, enquanto o bncert-tool não.

Pré-requisitos e limitações

  • As etapas a seguir abordam a instalação do certificado no servidor. Você deve concluir manualmente as etapas adicionais, como configurar o servidor da Web para usar o certificado e configurar o redirecionamento HTTPS.
  • O domínio deve estar usando um dos provedores de DNS listados em Provedores de DNS na documentação da Lego.

Observação: no exemplo a seguir, o provedor de DNS é o Amazon Route 53 ou o Amazon Lightsail. Para obter instruções sobre outros provedores de DNS suportados, consulte Provedores de DNS na documentação da Lego.

1.    Crie um usuário do AWS Identity and Access Management (IAM) com o acesso programático. Para obter as permissões mínimas necessárias para serem anexadas ao usuário do IAM para que a Lego conclua o desafio de DNS, consulte Política na documentação do Lego.

2.    Execute os seguintes comandos na instância para abrir o arquivo /root/.aws/credentials no nano editor.

sudo mkdir /root/.aws
sudo nano /root/.aws/credentials

3.    Copie as seguintes linhas para o arquivo. Em seguida, salve o arquivo pressionando ctrl+x, pressione y e, em seguida, ENTER.

No comando a seguir, substitua aws_access_key_id pelo ID da chave de acesso criado na etapa 1. Substitua um aws_secret_access_key pela chave de acesso secreta criada na etapa 1.

[default]
aws_access_key_id = AKIA************E
aws_secret_access_key = 1yop**************************l

4.    Se sua instância Bitnami não incluir o diretório /opt/bitnami/letsencrypt/, você pode instalar manualmente o cliente Lego usando os seguintes comandos:

cd /tmp
curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i - -O lego.tar.gz
tar xf lego.tar.gz
sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego

5.    Crie um certificado Let's Encrypt no servidor. Substitua o EMAIL-ADDRESS pelo endereço de e-mail onde você deseja receber mais atualizações sobre seu certificado. Substitua o DOMAIN pelo nome de domínio.

Servidores de nomes Route 53

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns route53 --path="/opt/bitnami/letsencrypt" run

Servidores de nomes Lightsail

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains"*.DOMAIN" --dns lightsail --path="/opt/bitnami/letsencrypt" run

Depois que o certificado SSL for gerado com êxito, você receberá a mensagem “O servidor respondeu com um certificado”. O certificado SSL e a chave privada são gerados nos seguintes locais:

/opt/bitnami/letsencrypt/certificates/DOMAIN.crt

/opt/bitnami/letsencrypt/certificates/DOMAIN.key

6.    Vincule o certificado SSL e o arquivo de chave de certificado aos locais que estão sendo lidos no momento pelo seu servidor Web:

Apache sob a abordagem A

Nos comandos de exemplo a seguir, substitua o espaço reservado DOMAIN pelo nome de domínio.

sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

Apache sob a abordagem B

Nos comandos de exemplo a seguir, substitua o espaço reservado DOMAIN pelo nome de domínio.

sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

NGINX sob a abordagem A

Nos comandos de exemplo a seguir, substitua o espaço reservado DOMAIN pelo nome de domínio.

sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

NGINX sob a abordagem B

Nos comandos de exemplo a seguir, substitua o espaço reservado DOMAIN pelo nome de domínio.

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

7.    Configure a renovação automática de certificados.

Os certificados Let's Encrypt são válidos por 90 dias. Para automatizar a renovação do certificado para que o certificado seja renovado automaticamente antes de expirar, faça o seguinte:

Execute o seguinte comando para abrir o editor crontab:

sudo crontab -e -u bitnami

Adicione as seguintes linhas ao arquivo crontab e salve o arquivo. Substitua EMAIL-ADDRESS pelo seu endereço de e-mail, DOMAIN pelo seu nome de domínio e DNS pelo nome do provedor do servidor de nomes (Route 53, Lightsail e assim por diante).

0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="EMAIL-ADDRESS" --domains="DOMAIN"  --domains="*.DOMAIN" --dns DNS renew >> /var/log/letsencrypt.log 2>&1 && sudo /opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf -k graceful

8.    Configure o redirecionamento HTTPS. Para obter mais informações, consulte as seguintes informações no site da Bitnami:

Método 2

Pré-requisitos e limitações

  • As etapas a seguir abordam a instalação do certificado no servidor. Você ainda deve concluir manualmente etapas adicionais, como configurar o servidor da Web para usar o certificado e configurar o redirecionamento HTTPS.
  • A renovação automática de certificados não é compatível com este método.

Observação: antes de iniciar as etapas a seguir, instale o Certbot. Para obter instruções de instalação, consulte Como instalo o pacote Certbot na minha instância do Lightsail para a instalação do certificado Let's Encrypt?

Para instâncias hospedadas em Bitnami, a distribuição Linux é Debian ou Ubuntu. Execute o seguinte comando para confirmar qual distribuição Linux você tem:

cat /etc/os-release | grep -i ^id

1.    Este método requer a adição de registros TXT no provedor de DNS do domínio. Este processo pode levar algum tempo, então é uma prática recomendada executar os comandos na Tela GNU do Linux para evitar que a sessão tenha tempo limite. Para iniciar uma sessão de tela, insira o seguinte comando:

screen -S letsencrypt

2.    Insira o seguinte comando para iniciar o Certbot no modo interativo. Este comando diz ao Certbot para usar um método de autorização manual com desafios de DNS para verificar a propriedade do domínio. Substitua example.com pelo nome de domínio.

sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com

3.    Você recebe uma solicitação para verificar a posse do domínio especificado adicionando registros TXT aos registros DNS do seu domínio. O Let's Encrypt fornece um único ou vários registros TXT que você deve usar para verificação.

4.    Quando você vir um registro TXT na tela, primeiro adicione o registro fornecido no DNS do seu domínio. NÃO PRESSIONE ENTER até confirmar que o registro TXT é propagado para o DNS da Internet. Além disso, NÃO PRESSIONE CTRL+D, pois isso encerrará a sessão da tela atual.

5.    Para confirmar que o registro TXT foi propagado para o DNS da Internet, procure em Pesquisa de texto DNS. Insira o seguinte texto na caixa de texto e escolha Pesquisa TXT para executar a verificação. Certifique-se de substituir example.com pelo seu domínio.

_acme-challenge.example.com

6.    Se seus registros TXT tiverem se propagado para o DNS da Internet, você verá o valor do registro TXT na página. Agora você pode voltar para a tela e pressionar ENTER.

7.    Se você for removido do shell, poderá voltar usando a tela de comando -r SESSIONID. Obtenha o ID da sessão executando a tela de comando -ls.

8.    Se o prompt do Certbot solicitar que você adicione outro registro TXT, conclua as etapas 4-7 novamente.

9.    Depois que o certificado SSL for gerado com êxito, você receberá a mensagem “Certificado recebido com sucesso”. O certificado e os locais dos arquivos de chave também são fornecidos. Salve estes locais de arquivo em um bloco de notas para uso na próxima etapa.

10.    Somente a instalação do certificado e a configuração da renovação estão concluídas. Você ainda deve configurar seu servidor Web para usar este certificado e configurar o redirecionamento HTTPS. Use um dos seguintes conjuntos de comandos para configurar o servidor Web para usar o certificado.

Apache sob a abordagem A

Nos comandos de exemplo a seguir, substitua o espaço reservado DOMAIN pelo nome de domínio.

sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

Apache sob a abordagem B

Nos comandos de exemplo a seguir, substitua o espaço reservado DOMAIN pelo nome de domínio.

sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

NGINX sob a abordagem A

Nos comandos de exemplo a seguir, substitua o espaço reservado DOMAIN pelo nome de domínio.

sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

NGINX sob a abordagem B

Nos comandos de exemplo a seguir, substitua o espaço reservado DOMAIN pelo nome de domínio.

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

8.    Configure o redirecionamento HTTPS. Para obter mais informações, consulte as seguintes informações no site da Bitnami:


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?