No post de hoje, vamos mostrar como configurar o certificado SSL Let’s Encrypt grátis no Ubuntu Linux com o servidor web Apache HTTP.
Let’s Encrypt é uma autoridade de certificação gratuita, automatizada e aberta, criada pela organização sem fins lucrativos Internet Security Research Group (ISRG).
Em vez de comprar um certificado SSL para o seu site e outros aplicativos, pode-se usar o Vamos criptografar certificados SSL grátis para proteger seus portais e aplicativos da web.
Os certificados Let’s Encrypt SSL são válidos por 90 dias. No entanto, você pode criar um processo automatizado para renovar automaticamente antes de expirar.
Se você vai operar um site ou precisa proteger seu aplicativo com HTTPS, então os certificados Let’s Encrypt são ótimos. Você pode economizar muito dinheiro com ele.
Para esta postagem, vamos usar o certificado SSL grátis Let’s Encrypt para proteger um site com tecnologia Apache. Seu site Apache será capaz de se comunicar por HTTPS.
Para começar a usar o Let’s Encrypt no Ubuntu Linux para proteger o Apache, siga as etapas abaixo.
Como instalar o Certbot no Ubuntu Linux
Certbot é uma ferramenta de linha de comando que automatiza as tarefas de aquisição e renovação de certificados Let’s Encrypt SSL. Existem outras ferramentas para realizar as mesmas tarefas, mas o Certbot é eficiente e fácil de usar.
Para instalar o Certbot no Ubuntu, execute os comandos abaixo.
sudo apt update sudo apt install certbot
Como gerar certificados Let’s Encrypt para Ubuntu Linux
Agora que o Certbot está instalado, você pode começar a gerar certificados Let’s Encrypt SSL no Ubuntu Linux.
Para automatizar a geração e renovação de certificados, usaremos o plugin Webroot. Este plug-in usa o diretório /.well-known/acme-challenge na raiz do servidor web para validar se o domínio solicitado é resolvido para o servidor que executa o Certbot.
Vamos criar um Alias de desafio / resposta para permitir que o Let’s Encrypt valide o servidor para o qual os certificados foram gerados. Para fazer isso, execute os comandos abaixo.
Para fazer isso, execute os comandos abaixo para criar um arquivo de configuração chamado well-known.conf no diretório /etc/apache2/conf-available . Este diretório contém todas as configurações que você deseja usar com o servidor da web Apache. Todos os arquivos de configuração são incluídos automaticamente no arquivo de configuração principal do Apache.
sudo nano /etc/apache2/conf-available/well-known.conf
Em seguida, copie e cole o conteúdo abaixo no arquivo e salve.
Alias /.well-known/acme-challenge/ "/var/www/html/.well-known/acme-challenge/" <Directory "/var/www/html/"> AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS </Directory>
O arquivo de configuração acima permite que o Let’s Encrypt valide o servidor web usando o plugin Webroot.
Antes de SSL e HTTPS, um arquivo Apache VirtualHost típico deve ser parecido com o abaixo.
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com ServerAdmin admin@example.com DocumentRoot /var/www/example.com <Directory /var/www/example.com/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Como gerar o grupo Dh (Diffie-Hellman)
A troca de chaves Diffie – Hellman (DH) é um método de troca segura de chaves criptográficas. Na maioria das configurações SSL, você deseja gerar um grupo de chaves Diffie-Hellman forte.
Execute os comandos abaixo para gerar uma chave no diretório /etc/ssl/cert no Ubuntu Linux.
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Como obter certificados Let’s Encrypt no Ubuntu Linux
Neste ponto, você deve estar pronto para obter um certificado gratuito do Let’s Encrypt. Antes de gerar seus certificados gratuitos, execute os comandos abaixo para habilitar esses módulos Apache para SSL, cabeçalhos e HTTP versão 2.
sudo a2enmod ssl sudo a2enmod headers sudo a2enmod http2
Ative também os arquivos de configuração que criamos no diretório conf-available .
sudo a2enconf well-known.conf
Depois de concluído, recarregue o Apache executando os comandos abaixo.
sudo systemctl reload apache2
Agora você está pronto para gerar certificados Let’s Encrypt SSL. Execute os comandos abaixo, substituindo example.com por seu próprio domínio para gerar certificados Let’s Encrypt SSL.
sudo certbot certonly --agree-tos --email admin@example.com --webroot -w /var/www/html -d example.com -d www.example.com
Uma mensagem de geração de certificado bem-sucedida será semelhante a esta abaixo:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2021-09-07. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Agora você pode usar o certificado e a chave nas configurações do Apache VirtualHost.
Sua nova configuração após adicionar as configurações de SSL recomendadas deve ser semelhante a esta abaixo:
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ </VirtualHost> <VirtualHost *:443> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com Protocols h2 http:/1.1 <If "%{HTTP_HOST} == 'www.example.com'"> Redirect permanent / https://example.com/ </If> ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem" SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCompression off SSLUseStapling on Header always set Strict-Transport-Security "max-age=63072000" <Directory /var/www/example.com/> Options FollowSymlinks AllowOverride All Require all granted </Directory> </VirtualHost>
Faça alterações nas configurações acima para se adequar ao seu ambiente. No entanto, as configurações acima devem funcionar na maioria dos ambientes Apache.
Como renovar automaticamente, vamos criptografar certificados
Agora que o certificado foi gerado, você pode configurar um processo para renovar automaticamente os certificados. Por padrão, ele expira em 90 dias. Configurar um processo para que você não precise se lembrar de renovar é a melhor opção.
Para fazer isso, execute os comandos abaixo para editar o crontab no Ubuntu.
sudo crontab -e
Em seguida, adicione a linha abaixo e salve …
0 1 * * * /usr/bin/certbot renew >> /var/log/letsencrypt/renew.log
Salvar e sair.
Agora você pode usar o certificado e os arquivos de chave mencionados acima em suas configurações do Apache para habilitar HTTPS.
Conclusão
Esta postagem mostrou como usar o certificado SSL grátis Let’s Encrypt para proteger o servidor Apache HTTP. Se você encontrar algum erro acima ou tiver algo a acrescentar, use o formulário de comentários abaixo para fazê-lo.