Pesquisa de site

Como proteger o Apache com certificado SSL gratuito Let's Encrypt no Ubuntu e Debian


Você tem um nome de domínio recém-registrado e seu servidor web opera com um Certificado SSL Autoassinado emitido por você, o que está causando dores de cabeça para seus clientes enquanto visitam o domínio devido a erros gerados no certificado? Você tem um orçamento limitado e não pode comprar um certificado emitido por uma CA confiável? É aí que o software Let’s Encrypt entra em cena e salva o dia.

Se você deseja instalar o Let's Encrypt para Apache ou Nginx no RHEL, CentOS, Fedora ou Ubuntu e Debian, siga estes guias abaixo:

Configure Vamos criptografar para proteger o Apache no RHEL e CentOS 7/6

Configuração, vamos criptografar para proteger o Nginx no Ubuntu e Debian

Let's Encrypt é uma autoridade de certificação (CA) que facilita a aquisição de certificados SSL/TLS gratuitos necessários para o seu servidor para funcionar com segurança, proporcionando uma experiência de navegação tranquila para seus usuários, sem erros.

Testando Ambiente de Amostra

Todas as etapas necessárias para gerar um certificado são, em sua maioria, automatizadas para o servidor web Apache. Porém, apesar do software do seu servidor web, algumas etapas devem ser executadas manualmente e os certificados devem ser instalados manualmente, especialmente caso o conteúdo do seu site seja servido pelo daemon Nginx.

Este tutorial irá guiá-lo sobre como instalar o software Let's Encrypt no Ubuntu ou Debian, gerar e obter um certificado gratuito para seu domínio e como você pode instalar manualmente o certificado em servidores web Apache e Nginx.

Requisitos

  1. Um nome de domínio público registrado com registros A válidos para apontar para o endereço IP externo do seu servidor. Caso o seu servidor esteja protegido por um firewall, tome as medidas necessárias para garantir que o seu servidor seja acessível em todo o mundo pela Internet, adicionando regras de encaminhamento de porta no lado do roteador.
  2. Servidor web Apache instalado com módulo SSL habilitado e hospedagem virtual habilitada, caso você hospede vários domínios ou subdomínios.

Etapa 1: Instale o Apache e habilite o módulo SSL

1. Se você ainda não possui o servidor web Apache instalado em sua máquina, emita o seguinte comando para instalar o daemon Apache.

sudo apt-get install apache2

2. A ativação do módulo SSL para servidor web Apache no Ubuntu ou Debian é bastante simples. Habilite o módulo SSL e ative o host virtual SSL padrão do Apache emitindo os comandos abaixo:

sudo a2enmod ssl
sudo a2ensite default-ssl.conf
sudo service apache2 restart
or
sudo systemctl restart apache2.service

Os visitantes agora podem acessar seu nome de domínio através do protocolo HTTPS. No entanto, como o certificado autoassinado do seu servidor não é emitido por uma autoridade de certificação confiável, um alerta de erro seria exibido em seus navegadores, conforme ilustrado na imagem abaixo.

https://yourdomain.com

Etapa 2: Instale o cliente Let's Encrypt gratuitamente

3. Para instalar o software Let’s Encrypt em seu servidor, você precisa ter o pacote git instalado em seu sistema. Emita o seguinte comando para instalar o software git:

sudo apt-get -y install git

4. Em seguida, escolha um diretório da hierarquia do sistema onde deseja clonar o repositório git Let’s Encrypt. Neste tutorial usaremos o diretório /usr/local/ como caminho de instalação do Let’s Encrypt.

Mude para o diretório /usr/local e instale o cliente letsencrypt emitindo os seguintes comandos:

cd /usr/local
sudo git clone https://github.com/letsencrypt/letsencrypt

Etapa 4: gerar um certificado SSL para Apache

5. O processo de obtenção de um Certificado SSL para Apache é automatizado graças ao plugin Apache. Gere o certificado emitindo o seguinte comando em seu nome de domínio. Forneça seu nome de domínio como parâmetro para o sinalizador -d.

cd /usr/local/letsencrypt
sudo ./letsencrypt-auto --apache -d your_domain.tld

Por exemplo, se você precisar que o certificado opere em vários domínios ou subdomínios, adicione todos eles usando o sinalizador -d para cada registro DNS válido extra após o nome de domínio base.

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld 

6. Concorde com a licença, insira um endereço de e-mail para recuperação e escolha se os clientes podem navegar em seu domínio usando protocolos HTTP (seguro e inseguro) ou redirecionar todas as solicitações não seguras para HTTPS.

7. Depois que o processo de instalação for concluído com sucesso, uma mensagem de parabéns será exibida em seu console informando sobre a data de expiração e como você pode testar a configuração conforme ilustrado nas capturas de tela abaixo.

Agora você deve conseguir encontrar seus arquivos de certificado no diretório /etc/letsencrypt/live com uma simples listagem de diretórios.

sudo ls /etc/letsencrypt/live

8. Finalmente, para verificar o status do seu Certificado SSL visite o seguinte link. Substitua o nome de domínio adequadamente.

https://www.ssllabs.com/ssltest/analyze.html?d=your_domain.tld&latest

Além disso, os visitantes agora podem acessar seu nome de domínio usando o protocolo HTTPS sem que nenhum erro apareça em seus navegadores.

Etapa 4: renovação automática permite criptografar certificados

9. Por padrão, os certificados emitidos pela autoridade Let’s Encrypt são válidos por 90 dias. Para renovar o certificado antes da data de expiração, você deve executar manualmente o cliente novamente usando os sinalizadores e parâmetros exatos de antes.

sudo ./letsencrypt-auto --apache -d your_domain.tld

Ou no caso de vários subdomínios:

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld

10. O processo de renovação do certificado pode ser automatizado para ser executado em menos de 30 dias antes da data de expiração usando o daemon cron de agendamento do Linux.

sudo crontab -e

Adicione o seguinte comando no final do arquivo crontab usando apenas uma linha:

0 1 1 */2 * cd /usr/local/letsencrypt && ./letsencrypt-auto certonly --apache --renew-by-default --apache -d domain.tld >> /var/log/domain.tld-renew.log 2>&1

11. Detalhes sobre seu arquivo de configuração de domínio de renovação para o software Let’s Encrypt podem ser encontrados no diretório /etc/letsencrypt/renewal/.

cat /etc/letsencrypt/renewal/caeszar.tk.conf

Você também deve verificar o arquivo /etc/letsencrypt/options-ssl-apache.conf para visualizar o novo arquivo de configuração SSL para o servidor web Apache.

12. Além disso, o plugin Vamos criptografar o Apache modifica alguns arquivos na configuração do seu servidor web. Para verificar quais arquivos foram modificados, liste o conteúdo do diretório /etc/apache2/sites-enabled.

ls /etc/apache2/sites-enabled/
sudo cat /etc/apache2/sites-enabled/000-default-le-ssl.conf

É tudo por agora! Na próxima série de tutoriais discutiremos como você pode obter e instalar um certificado Let's Encrypt para o servidor web Nginx em Ubuntu e Debian< e no CentOS também.