SSL gratuito Let's Encrypt para Apache no AlmaLinux 9

3 min
Alojamento VPS/VDS

Os navegadores e os motores de pesquisa esperam HTTPS, e a Let's Encrypt fornece certificados sem custo. Num VPS Linux Infrawire com AlmaLinux 9, o Certbot pode obter o certificado, alterar a configuração do Apache e renová-lo sozinho. Os mesmos passos servem para o Rocky Linux 9.

📋 Pré-requisitos

  • Um VPS AlmaLinux 9 com acesso root ou sudo (IP e palavra-passe na sua área de cliente).
  • Um domínio, example.com, cujo registo A (e AAAA para IPv6) aponte para VPS_IP. Aguarde primeiro a propagação do DNS.
  • O Apache (httpd) a servir o site em HTTP na porta 80.

1. Instalar o Apache e abrir a firewall

Se o Apache ainda não estiver instalado, instale-o e arranque-o. Depois abra HTTP e HTTPS na firewalld; a porta 80 é necessária para a validação da Let's Encrypt.

Bash
dnf install -y httpd systemctl enable --now httpd firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload firewall-cmd --list-services

2. Criar um host virtual para o seu domínio

O Certbot procura um ServerName que corresponda ao seu domínio, por isso crie um host virtual dedicado.

Bash
mkdir -p /var/www/example.com/public_html echo "Hello" > /var/www/example.com/public_html/index.html

Crie /etc/httpd/conf.d/example.com.conf:

Apache
1<VirtualHost *:80> 2 ServerName example.com 3 ServerAlias www.example.com 4 DocumentRoot /var/www/example.com/public_html 5</VirtualHost>

Verifique a sintaxe e recarregue:

Bash
apachectl configtest systemctl reload httpd

3. Instalar o Certbot e o mod_ssl

O Certbot vem do repositório EPEL. O mod_ssl fornece o módulo TLS do Apache e um certificado por omissão de que o httpd precisa para escutar na porta 443.

Bash
dnf install -y epel-release dnf install -y certbot python3-certbot-apache mod_ssl

4. Pedir o certificado

Execute o Certbot com o plugin do Apache. Valida o domínio por HTTP, escreve um novo host virtual *-le-ssl.conf e pode acrescentar o redirecionamento de HTTP para HTTPS.

Bash
certbot --apache -d example.com -d www.example.com

Introduza um e-mail real (usado nos avisos de expiração), aceite os termos e escolha o redirecionamento quando perguntado. Cada nome indicado com -d tem de resolver para este servidor, caso contrário a validação falha.

Se o SELinux estiver em modo enforcing (o predefinido), não é preciso nada de especial numa instalação normal. Não o desative para contornar um erro.

5. Verificar a renovação automática

Os certificados da Let's Encrypt duram 90 dias. No AlmaLinux 9 o pacote instala um temporizador systemd que corre duas vezes por dia e só renova certificados perto de expirar.

Bash
systemctl list-timers | grep certbot systemctl status certbot-renew.timer

Se o temporizador não aparecer, ative-o:

Bash
systemctl enable --now certbot-renew.timer

Simule uma renovação sem tocar no certificado real:

Bash
certbot renew --dry-run

A última linha deve indicar que todas as renovações simuladas tiveram êxito. O Apache é recarregado automaticamente após uma renovação real.

Verificação

Bash
certbot certificates curl -I https://example.com curl -I http://example.com

O primeiro comando lista os domínios e a data de expiração. O pedido HTTPS deve devolver 200 e o pedido HTTP deve responder com um 301 para o endereço HTTPS. No navegador, o cadeado deve mostrar um certificado válido emitido pela Let's Encrypt. Para ver a cadeia completa pode executar openssl s_client -connect example.com:443 -servername example.com.

Resolução de problemas

  • Falha do desafio ou tempo esgotado na validação: o DNS ainda não aponta para o servidor ou a porta 80 está bloqueada. Verifique dig +short example.com, firewall-cmd --list-services e qualquer firewall à frente do VPS.
  • O Certbot não encontra um host virtual correspondente: o ServerName ou ServerAlias em /etc/httpd/conf.d/ não corresponde ao domínio indicado. Corrija, execute apachectl configtest e tente de novo. Também pode usar certbot certonly --apache e configurar os caminhos você mesmo.
  • Demasiados certificados ou validações falhadas (limite de pedidos): a Let's Encrypt limita tentativas repetidas. Teste primeiro com certbot --apache --dry-run e aguarde antes de repetir.
  • Site inacessível na 443 após a instalação: o HTTPS não está aberto na firewalld ou o httpd não foi recarregado. Execute firewall-cmd --permanent --add-service=https, firewall-cmd --reload e systemctl restart httpd.

🔐 O seu site Apache no AlmaLinux 9 já serve HTTPS e renova o certificado sozinho.

Fique a par das últimas ofertas, descontos e promoções especiais.

Ver promoções

Utilizamos cookies

Utilizamos cookies analíticos para melhorar a sua experiência no nosso site. Nenhum dado é vendido a terceiros. Saiba mais na nossa política de privacidade.