Instalação do Apache no Amazon Linux 2023 + Let’s Encrypt

Instalando o Apache

Atualizando os programas instalados

sudo dnf update -y

Instalando o Apache e módulos necessários.

sudo dnf install -y httpd mod_ssl

Caso seja necessário, o comando abaixo cria o arquivo que carrega o mod_ssl.so

sudo echo “LoadModule ssl_module modules/mod_ssl.so” > /etc/httpd/conf.modules.d/00-ssl.conf

Configurando o Apache a iniciar com o sistema operacional

sudo systemctl enable httpd

Verificando se realmente ele está executando

sudo systemctl is-enabled httpd

Nesse momento o Apache já está funcionando.
Acessando http://localhost ou http://seudominio.com  deve aparecer a mensagem “It works!”.

Estrutura de arquivos do Apache

Documento root: /var/www/html
Arquivos de configuração: /etc/httpd
Arquivo de configuração do Apache: /etc/httpd/conf/httpd.conf
Arquivo de configuração do virtualhost (seu site). Se ele não existir, você deve criá-lo:
/etc/httpd/conf.d/seusite.conf

Conteúdo inicial do arquivo seusite.conf:

<VirtualHost *:80>

</VirtualHost>

Atenção

Se você for utilizar o Let’s Encrypt, não adicione configurações de redirecionamento no arquivo acima. O Certbot, no processo de instalação do certificado pode causar erro, argumentando que ele poderia gerar loops de redirect. Isso acontece porque ele em seu processo cria a configuração de redirecionamento de HTTP para HTTPS.

Instalando o Certbot para geração de certificado digital

A Let’s Encrypt utiliza a ferramenta Certbot para automatizar a geração do certificado. Logo, precisamos instalar o Certbot no Amazon Linux. A instalação fica mais fácil utilizando o Pip, o gerenciador de pacote do Python.

Para instalar o Pip, o Certbot e gerar o certificado, basta seguir o passo a passo da documentação: https://certbot.eff.org/instructions?ws=apache&os=pip

Configurando o redirecionamento de www.dominio.com para dominio.com

Essa configuração está considerando que o seu domínio utiliza https://

Zona de DNS

Criar no zona de DNS um registro CNAME apontando o www.dominio.com para dominio.com. Exemplo no Route 53 da AWS: 

Módulo Rewrite do Apache

O rewrite_module já vem habilitado no arquivo /etc/httpd/conf.modules.d/00-base.conf .
Caso não esteja, você só precisa adicionar ao arquivo 00-base.conf, a linha abaixo:

LoadModule rewrite_module modules/mod_rewrite.so

Adicionar configuração no arquivo meudominio-le-ssl.conf, dentro da seção
<VirtualHost *:443>[..]</VirtualHost> :

<Directory /var/www/html>
    Options FollowSymLinks
    AllowOverride All
    Order Allow,Deny
    Allow from all
</Directory>

Criando o redirecionamento

Criando o arquivo .htaccess

sudo vim /var/www/html/.htaccess

Conteúdo do arquivo .htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Referências