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

8 minuto de leitura
0

Quero instalar um certificado SSL curinga para meu site em uma instância do Amazon Lightsail com uma pilha Bitnami.

Breve descrição

Para obter informações sobre como instalar um blueprint de instância diferente ou um certificado padrão, consulte os seguintes artigos do Centro de Conhecimento da AWS:

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. Verifique se o seu provedor de DNS está listado em Provedores de DNS no site da Lego. Em seguida, selecione o método apropriado a ser usado:

  • use a ferramenta Lego fornecida pela Bitnami se o seu domínio usar um dos provedores de DNS listados.
  • 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). Os projetos mais recentes do Bitnami WordPress estão disponíveis apenas para a Abordagem A.

Para identificar o tipo de instalação do Bitnami, execute o seguinte comando:

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

Ferramenta Lego

O Bitnami fornece o bncert-tool e a ferramenta Lego. A ferramenta Lego suporta a criação de certificados SSL curinga. O bncert-tool não suporta a criação de certificados SSL curinga.

Observação: no exemplo a seguir, os provedores de DNS são o Amazon Route 53 e o Amazon Lightsail.

Para usar a ferramenta Lego para instalar um certificado SSL Let's Encrypt curinga, conclua as seguintes etapas:

  1. Crie um usuário do AWS Identity and Access Management (IAM) com acesso programático. Para determinar as permissões de usuário do IAM necessárias para que a Lego conclua o desafio de DNS, consulte exemplos de políticas do IAM no site da Lego.

  2. Para abrir o arquivo /root/.aws/credentials no editor nano, execute o seguinte comando:

    sudo mkdir /root/.aws
    sudo nano /root/.aws/credentials
  3. Insira as seguintes linhas no arquivo de credenciais:

    [default]
    aws_access_key_id = AKIA************E
    aws_secret_access_key = 1yop**************************l
    region = us-east-1

    Observação: substitua aws_access_key_id e aws_secret_access_key por seus valores. Substitua us-east-1 pela região da AWS da sua instância do Lightsail.

  4. Salve o arquivo pressionando Ctrl+x, pressione y e, em seguida, Enter.

  5. Se sua instância Bitnami não incluir o diretório /opt/bitnami/letsencrypt/, execute o seguinte comando para instalar manualmente o cliente Lego:

    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 xzf lego.tar.gz
    sudo mkdir -p /opt/bitnami/letsencrypt
    sudo mv lego /opt/bitnami/letsencrypt/lego
  6. Para criar um certificado Let's Encrypt curinga no servidor, execute o seguinte comando com base no seu tipo de servidor:
    Servidores de nomes do Route 53:

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

    Servidores de nomes do Lightsail:

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

    Observação: substitua EMAIL-ADDRESS pelo endereço de e-mail onde você deseja receber mais atualizações sobre seu certificado. Substitua DOMAIN pelo seu nome de domínio.
    O certificado SSL e a chave privada são gerados nos seguintes locais: /opt/bitnami/letsencrypt/certificates/DOMAIN.crt ou /opt/bitnami/letsencrypt/certificates/DOMAIN.key.

  7. Para interromper os serviços de pilha Bitnami, execute o seguinte comando:

    sudo /opt/bitnami/ctlscript.sh stop
  8. Vincule o certificado SSL e o arquivo da chave do certificado aos locais que seu servidor web lê atualmente, com base no servidor e na abordagem:
    Apache, Abordagem A

    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

    Apache, Abordagem B

    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

    NGINX, Abordagem A

    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

    NGINX, Abordagem B

    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

    Observação: para os comandos anteriores, substitua DOMAIN pelo seu nome de domínio.

  9. Para iniciar os serviços de pilha Bitnami, execute o seguinte comando:

    sudo /opt/bitnami/ctlscript.sh start
  10. Para automatizar a renovação do certificado, execute o seguinte comando para abrir o editor crontab:

sudo crontab -e -u bitnami

Observação: os certificados Let's Encrypt são válidos por 90 dias. Digite a linha a seguir no arquivo crontab e salve o arquivo:
Apache

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

Nginx

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/nginx/sbin/nginx -c /opt/bitnami/nginx/conf/nginx.conf -s reload

Observação: substitua EMAIL-ADDRESS, DOMAIN e DNS pelos seus valores. Configure o redirecionamento HTTPS. Para obter mais informações, consulte Forçar o redirecionamento de HTTPS com o Apache e Forçar o redirecionamento de HTTPS com o NGINX no site da Bitnami.

Pacote Certbot

Pré-requisitos:

  • Instale o Certbot.
  • Determine sua distribuição Linux. Para instâncias hospedadas pelo Bitnami, a distribuição Linux é Debian ou Ubuntu. Execute o comando a seguir para confirmar sua distribuição Linux:
    cat /etc/os-release | grep -i ^id
    Observação: esse método não oferece suporte à renovação automática de certificados.

Para usar o pacote Certbot para instalar um certificado SSL Let's Encrypt curinga, conclua as seguintes etapas:

  1. Inicie uma Sessão Linux GNU Screen. Como a adição de registros TXT no provedor de DNS do domínio leva tempo, a sessão pode atingir o tempo limite. É uma prática recomendada executar os comandos no Linux GNU Screen para que a sessão não atinja o tempo limite. Para iniciar uma sessão de tela, execute o seguinte comando:

    screen -S letsencrypt
  2. Para iniciar o modo interativo do Certbot, execute o seguinte comando:

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

    Observação: substitua example.com pelo seu valor.
    Se você receber uma resposta de erro, como “bash: certbot: command not found”, talvez seja necessário adicionar /bin/snap à sua variável de ambiente PATH. Primeiro, digite “exit” e pressione Enter. Ou pressione Ctrl + D para sair da sessão da tela. Em seguida, edite /etc/environment e adicione /snap/bin na lista. Reinicie seu sistema. Para confirmar que não há mais um erro, execute o seguinte comando:

    $ certbot -h
  3. Copie os registros TXT fornecidos pelo Let's Encrypt. O Let's Encrypt fornece um único ou vários registros TXT que você deve usar para verificação.

  4. Adicione o registro fornecido no DNS do seu domínio.
    Importante: não pressione Enter até confirmar que o registro TXT foi propagado para o DNS da Internet. Além disso, não pressione Ctrl + D porque essa ação encerra a sessão da tela.

  5. Para confirmar que o registro foi propagado, procure o registro TXT na pesquisa de texto do DNS no site MxToolbox:

    _acme-challenge.example.com

    Observação: substitua example.com pelo seu valor.
    Se seus registros TXT forem propagados, você verá o valor do registro TXT na página. Volte para a tela anterior e pressione Enter.

  6. Se você for removido do shell, execute o seguinte comando para retornar ao shell:

    Screen -r SESSIONID

    Observação: execute o comando screen -ls para obter o ID da sessão.

  7. (Opcional) Se solicitado, repita as etapas anteriores para adicionar outro registro TXT.
    Observação: se você usa o Route 53 para seu provedor de DNS, insira um valor TXT por linha. Edite o registro TXT e, em uma nova linha, adicione o valor TXT fornecido pelo certbot.

  8. Salve os locais dos arquivos do certificado SSL e do arquivo de chave. Depois que o certificado SSL for gerado, você receberá a mensagem “Certificado recebido com sucesso”.

  9. Para configurar seu servidor web para usar o certificado, execute os seguintes comandos com base em seu servidor e abordagem:
    Apache, Abordagem A

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    Apache, Abordagem B

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    NGINX, Abordagem A

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    NGINX, Abordagem B

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    Observação: para os comandos anteriores, substitua DOMAIN pelo seu nome de domínio.

  10. Configure o redirecionamento HTTPS. Para obter mais informações, consulte Forçar o redirecionamento de HTTPS com o Apache e Forçar o redirecionamento de HTTPS com o NGINX no site da Bitnami.

AWS OFICIAL
AWS OFICIALAtualizada há um ano