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

10 minuto de leitura
0

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 esquemas de instância incluem WordPress, LAMP, Magento, MEAN e assim por diante. Se tiver um blueprint de instância diferente ou quiser instalar um certificado padrão, consulte um dos seguintes procedimentos:

Certificados Let's Encrypt padrão

Para instalar um certificado SSL Let's Encrypt padrão em uma instância do Lightsail sem uma pilha Bitnami, consulte Como instalar um certificado SSL Let's Encrypt padrão em uma instância Lightsail? Isso inclui instâncias como Amazon Linux 2 e Ubuntu.

Para instalar um certificado SSL Let's Encrypt padrão em uma instância do Lightsail com uma pilha Bitnami, consulte Como instalar um certificado SSL Let's Encrypt em uma pilha Bitnami hospedada no Amazon Lightsail? Isso inclui instâncias como WordPress, LAMP e Magento.

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

Para instalar um certificado curinga Let's Encrypt em uma instância do Lightsail sem uma pilha Bitnami, consulte Como instalar um certificado SSL Let's Encrypt curinga no Amazon Lightsail? Isso inclui instâncias como Amazon Linux 2 e Ubuntu.

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.

1.    Crie um usuário do AWS Identity and Access Management (IAM) com 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 da 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 a sua instância do Bitnami não incluir o diretório /opt/bitnami/letsencrypt/, instale 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. Esse processo pode levar algum tempo, logo, uma das práticas recomendadas é executar os comandos na Tela GNU do Linux para evitar que a sessão atinja o tempo limite. Para iniciar uma sessão de tela, digite o seguinte comando:

screen -S letsencrypt

2.    Digite o seguinte comando para iniciar o Certbot no modo interativo. Esse 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 seu nome de domínio.

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

3.    Você recebe um aviso para verificar se é o proprietário do domínio especificado adicionando registros TXT aos registros DNS do seu domínio. O Let's Encrypt fornece um ou vários registros TXT que você deve usar para a verificação.

4.    Quando visualizar um registro TXT na tela, primeiramente adicione o registro fornecido ao DNS do seu domínio.
Importante: 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.

5.    Para confirmar que o registro TXT foi propagado para o DNS da Internet, consulte-o em DNS Text Lookup (Pesquisa de texto do DNS) no MxToolbox. Insira o seguinte texto na caixa de texto e escolha TXT Lookup (Pesquisa de TXT) para executar a verificação. Não esqueça de substituir example.com pelo seu domínio.

_acme-challenge.example.com

6.    Se os registros TXT forem propagados para o DNS da Internet, você verá o valor do registro TXT na página. Em seguida, volte para a tela e pressione ENTER.

7.    Se você for removido do shell, volte usando o comando screen -r SESSIONID. Obtenha o ID da sessão executando o comando screen -ls.

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

9.    Depois que o certificado SSL for gerado com êxito, você receberá a mensagem “Certificado recebido com sucesso”. Os locais dos arquivos do certificado e da 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. Ainda é necessário configurar seu servidor Web para usar esse 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:


AWS OFICIAL
AWS OFICIALAtualizada há um ano