Como instalar o Apache HTTPD no CentOS Stream 9

O Apache HTTP Server (httpd) é um dos servidores web mais populares e robustos disponíveis, conhecido por sua flexibilidade, desempenho e ampla gama de recursos. É amplamente utilizado para hospedagem de sites e aplicações web. Configurar o Apache no CentOS Stream 9 permite que você aproveite seus poderosos recursos para suas necessidades de hospedagem na web. Além disso, proteger seu site com um certificado SSL gratuito da Let's Encrypt garante que seu site seja criptografado e confiável.

Para instalar o Apache HTTP Server no CentOS Stream 9 e configurar um certificado Let's Encrypt SSL, siga as etapas descritas neste guia. Isso fornecerá uma configuração de servidor web segura e eficiente.

Garantindo um sistema CentOS Stream totalmente atualizado antes da instalação do Apache

Antes de prosseguir com a instalação do Apache em sua máquina CentOS Stream, devemos verificar se nosso sistema está totalmente atualizado. Isto é mais do que apenas uma medida de precaução. Atualizar seu sistema ajuda a evitar problemas de compatibilidade e melhora significativamente sua estabilidade, segurança e desempenho.

Para colocar isso em ação, execute o seguinte comando em seu terminal:

sudo dnf upgrade --refresh

Este comando aciona o mecanismo de atualização, adquirindo e instalando as atualizações de software e patches de segurança mais recentes do seu sistema. É crucial permitir que o processo de atualização seja totalmente concluído antes de avançar para a instalação do Apache. Isso garante que seu sistema esteja em perfeitas condições, configurado de maneira ideal e preparado para executar o Apache sem encontrar problemas ou problemas de compatibilidade.

Instale o Apache HTTPD via comando DNF

A segunda etapa é instalar o Apache, ou HTTPD, em seu sistema CentOS Stream. Este é um processo simples, cortesia do poderoso gerenciador de pacotes DNF. O gerenciador de pacotes DNF, ou Dandified Yum, simplifica a instalação, atualização e gerenciamento de pacotes de software.

Inicie a instalação do Apache (HTTPD) executando o seguinte comando em seu terminal:

sudo dnf install httpd

Este comando inicia o mecanismo de instalação e busca e instala todos os componentes necessários para permitir que o Apache (HTTPD) seja executado em seu sistema. O processo deve terminar em apenas alguns minutos. Depois disso, você terá o Apache (HTTPD) totalmente instalado e pronto para uso.

Ativando e configurando o Apache HTTPD para execução na inicialização do sistema

Após a instalação bem-sucedida do Apache (HTTPD) em seu sistema CentOS Stream, a ação principal a seguir é ativar o serviço e configurá-lo para iniciar automaticamente na inicialização do sistema. O Apache (HTTPD) está sempre ativo e preparado para atender solicitações da web quando o sistema é inicializado.

Se o serviço Apache (HTTPD) não estiver ativo ou configurado para ser executado por padrão, use estes comandos em seu terminal para iniciar o serviço e garantir que ele seja executado na inicialização do sistema:

sudo systemctl start httpd
sudo systemctl enable httpd

O primeiro comando, sudo systemctl start httpd, aciona o serviço Apache (HTTPD), enquanto o segundo comando, sudo systemctl enable httpd, configura o serviço para ser executado automaticamente na inicialização do sistema. Ao implementar esses dois comandos, você garante que o Apache (HTTPD) esteja constantemente acessível e ativo, pronto para atender às solicitações da web sempre que o sistema for ligado.

Como alternativa, você pode condensar as duas etapas anteriores em um único comando:

sudo systemctl enable httpd --now

A opção –now no comando sudo systemctl enable httpd –now inicia simultaneamente o serviço Apache (HTTPD) e o configura para iniciar automaticamente na inicialização do sistema. Este único comando unifica os dois comandos separados das etapas anteriores, tornando o processo mais simplificado e eficiente.

Verifique o status do serviço Apache HTTPD

Finalmente, devemos verificar o sucesso da implementação e funcionamento do Apache (HTTPD) utilizando o seguinte comando systemctl:

systemctl status httpd

Este comando fornece o status em tempo real do serviço Apache (HTTPD), incluindo quaisquer erros ou mensagens que possam ter surgido. Ao examinar minuciosamente o status do serviço, você pode confirmar se o Apache (HTTPD) está funcionando perfeitamente.

Configurar regras do FirewallD

Após instalar o Apache (HTTPD) no CentOS Stream, você poderá notar que o firewall não inclui regras pré-configuradas para as portas padrão 80 e 443. Você deve configurar essas regras de firewall antes de prosseguir para melhorar a segurança do seu aplicativo web.

Defina as regras de firewall usando a ferramenta firewall-cmd, o utilitário de gerenciamento de firewall padrão do CentOS Stream. As regras que você precisa configurar variam dependendo das portas que você pretende usar. No entanto, listamos todas as opções críticas nas etapas a seguir.

Abrindo as portas 80 e 443

Executaremos os dois primeiros comandos para abrir as portas 80 e 443. Essas portas lidam com o tráfego HTTP e HTTPS de entrada, respectivamente.

Para abrir a porta 80 ou HTTP, execute o seguinte comando:

sudo firewall-cmd --permanent --add-port=80/tcp

Em seguida, abra a porta 443, ou HTTPS, com o comando subsequente:

sudo firewall-cmd --permanent --add-port=443/tcp

Verifique as alterações do firewall

Após especificar as portas a serem abertas, devemos instruir o firewall para implementar essas alterações. Faça isso recarregando as regras do firewall usando o comando abaixo:

sudo firewall-cmd --reload

Compreendendo as implicações

É fundamental ter um conhecimento profundo das implicações de segurança que acompanham a abertura de portas no seu sistema. Ao abrir seletivamente apenas as portas necessárias, você reforça a defesa do seu aplicativo Web contra acesso não autorizado e possíveis ameaças à segurança. Isso sublinha por que é fundamental configurar corretamente as regras de firewall para a instalação do Apache (HTTPD) no CentOS Stream.

Verificando o acesso Apache HTTPD

Depois de configurar meticulosamente o Firewalld, certifique-se de poder acessar a página inicial do Apache (HTTPD) por meio de seu navegador da web. Inicie seu navegador favorito e vá para http://localhost ou http://your_server_ip.

Para acessar através do IP do seu servidor:

http://your_server_ip

Alternativamente, para acessar via localhost:

http://localhost

Quando você configura tudo com precisão, a página inicial padrão do Apache (HTTPD) irá cumprimentá-lo. Esta página exibe uma mensagem confirmando que o servidor está funcionando conforme esperado. A página será semelhante a:

Crie e configure um host virtual

Esta seção se aprofundará no aspecto prático da criação de um host virtual usando Apache (HTTPD), um servidor web flexível conhecido por sua capacidade de hospedar vários domínios em um único servidor. Este utilitário é análogo ao atributo “blocos de servidor” do Nginx. No tutorial a seguir, ilustraremos como formular um host virtual para um determinado domínio, representado como “exemplo-domínio.com”. Naturalmente, você substituirá este domínio de exemplo pelo seu nome de domínio específico.

A criação de hosts virtuais facilita o gerenciamento independente de configurações para cada domínio. Isso fornece controle sobre vários aspectos do ambiente do seu servidor web, incluindo segurança, desempenho e configurações personalizadas. Isso pode ser particularmente vantajoso se você pretende hospedar vários sites em um único servidor ou manter configurações separadas para seções distintas do seu site. Com o Apache (HTTPD), você pode criar hosts virtuais sem esforço para atender a esses requisitos.

Criando e configurando diretórios

Iniciar a configuração do seu host virtual envolve a criação de um novo diretório que serve como pasta raiz do seu host virtual. O nome deste diretório normalmente está alinhado com o seu nome de domínio.

Por exemplo, se o seu nome de domínio for “example.com”, você geraria um novo diretório com o comando:

sudo mkdir /var/www/example.com

Este comando requer a substituição de “example.com” pelo seu nome de domínio. Assim, o diretório abrigará arquivos e ativos associados aos seus hosts virtuais, incluindo arquivos HTML, imagens, scripts e outros recursos.

A configuração de diretórios individuais para cada host virtual facilita uma separação distinta de preocupações, o que é significativo no contexto de segurança e solução de problemas.

O novo diretório pode exigir propriedade e permissões apropriadas para permitir o acesso do Apache (HTTPD). Os comandos seguintes definem a propriedade e as permissões corretas:

sudo chown -R apache:apache /var/www/example.com
sudo chmod -R 755 /var/www/example.com

Com o novo diretório preparado, podemos configurar seu host virtual.

Criando um arquivo index.html

Um editor de texto gera um arquivo index.html para seu host virtual. Para nosso tutorial, usaremos o editor de texto nano, mas você pode escolher qualquer editor de texto de sua preferência.

Execute o seguinte comando para criar o arquivo index.html:

sudo nano /var/www/example.com/index.html

No editor de texto, comece a criar o conteúdo do seu arquivo index.html. Esse arquivo normalmente serve como o primeiro ponto de contato para um usuário que visita seu site.

Aqui está um exemplo simples:

<html>
  <head>
    <title>Example Domain</title>
  </head>
  <body>
    <h1>Welcome to Example Domain</h1>
    <p>This is a sample page for the domain example.com.</p>
  </body>
</html>

Ao finalizar o conteúdo do seu arquivo index.html, salve o arquivo e saia do editor de texto. No caso do nano, isso é feito pressionando Ctrl + X, Y e Enter.

Configurando diretórios de host virtual

Garantir a configuração adequada do diretório para o servidor web Apache garante uma configuração perfeita e organizada. Especificamente, são usados ​​os diretórios “sites disponíveis” e “sites habilitados”. Esta configuração espelha a adotada no Nginx e promove configurações organizadas e acessíveis.

Para criar esses diretórios, use o seguinte comando:

sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

Posteriormente, instrua o Apache a procurar arquivos de host virtual no diretório “/etc/httpd/sites-available”:

sudo nano /etc/httpd/conf/httpd.conf

No arquivo de configuração aberto, anexe a linha “IncludeOptional sites-enabled/*.conf” no final. Esta linha instrui o Apache a incluir todos os arquivos de configuração do host virtual no diretório “habilitado para sites”.

IncludeOptional sites-enabled/*.conf

Opcionalmente, você pode comentar “IncludeOptional conf.d/*.conf”, desativando a pasta padrão onde o Apache procura arquivos de host virtual. Isso ajuda a prevenir qualquer confusão potencial.

Exemplo:

#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf

Para salvar o arquivo e sair, use a combinação de teclado CTRL + O, seguida de CTRL + X.

Crie o arquivo de configuração do host virtual

A seguir, usando seu editor de texto, criaremos um arquivo de configuração de host virtual em /etc/httpd/sites-available/example.com.conf.

sudo nano /etc/httpd/sites-available/example.com.conf

Preencha as informações do espaço reservado no bloco de configuração a seguir com seu ServerName, ServerAlias ​​e Document Root antes de copiá-lo no arquivo de configuração do host virtual localizado em /etc/httpd/sites-available/example.com.conf.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example.com/
</VirtualHost>

Ajuste as diretivas do servidor para atender aos seus requisitos específicos.

Etapa 5: Modificando as permissões de acesso

Para conceder acesso público ao seu servidor, modifique as permissões de acesso para o serviço Apache no arquivo de configuração /etc/httpd/conf/httpd.conf. A configuração padrão nega acesso. Se você negligenciar esta etapa, poderá encontrar erros HTTP 403 quando as pessoas tentarem acessar seu site.

sudo nano /etc/httpd/conf/httpd.conf

Adicione o seguinte bloco ao seu arquivo, certificando-se de ajustar o diretório raiz para corresponder ao seu.

<Directory /var/www/example.com/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Para salvar essas alterações, use a combinação de teclado CTRL+O e saia do editor de texto usando CTRL+X.

Etapa 6: Habilite o Host Virtual para Apache no CentOS Stream

Para configurar o host virtual, você deve ativá-lo como etapa final. Crie um link simbólico do diretório de sites disponíveis para o diretório habilitado para sites usando o comando fornecido abaixo:

sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/

Você precisa reiniciar o serviço Apache para concluir o processo de ativação.

sudo systemctl restart httpd

Após reiniciar o serviço Apache, abra seu navegador e navegue até “HTTP://example_domain”. Se ainda não registrou um domínio, você pode acessar seu site usando o endereço IP (local ou remoto). Se você configurar tudo corretamente, a landing page que você criou no arquivo index.html irá cumprimentá-lo.

Comandos e dicas adicionais

Diretórios e arquivos seguros

Configurando permissões seguras

Usar permissões seguras para arquivos e diretórios no Apache no CentOS é crucial. Freqüentemente, são concedidas permissões excessivas, como acesso público total. Para evitar riscos de segurança, é recomendado limitar as permissões. Para diretórios, use chmod 755 e para arquivos, chmod 644. Abaixo estão os comandos para definir essas permissões. Lembre-se de que alguns aplicativos podem exigir permissões diferentes, como 777 para phpBB.

  • Para diretórios:
sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
  • Para arquivos:
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Esses comandos substituirão /var/www/example.com/ com o caminho de diretório apropriado. Esta etapa não garante segurança completa, mas reduz significativamente os riscos ao impedir o acesso público a arquivos cruciais.

Proteja o Apache com Let's Encrypt SSL

Instalando o certificado SSL Let's Encrypt

Proteger seu servidor Apache com um certificado SSL é necessário para conexões seguras entre cliente e servidor. Let's Encrypt fornece um certificado SSL automatizado e gratuito. Primeiro, certifique-se de que o repositório CRB esteja habilitado e o repositório EPEL esteja instalado. O processo de instalação varia ligeiramente entre o CentOS Stream 9 e 8.

Para CentOS Stream 9:
  • Ativar CRB:
sudo dnf config-manager --set-enabled crb
  • Instale o repositório EPEL:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Em seguida, instale mod_ssl e Snap:

sudo dnf install mod_ssl

Ative o EPEL em sua distribuição CentOS Stream e instale o Snap.

sudo dnf install snapd -y

Após a instalação, certifique-se de ativar o Snap e iniciar o sistema imediatamente.

sudo systemctl enable snapd --now

A próxima etapa é instalar o snap core, que cuidará de todas as dependências necessárias para a execução dos pacotes snap.

sudo snap install core

Crie um link simbólico para o diretório snapd.

sudo ln -s /var/lib/snapd/snap /snap

Use o seguinte comando de terminal para instalar o pacote snap Certbot.

sudo snap install --classic certbot

Por fim, crie outro link simbólico para o pacote snap do Certbot.

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Execute o Certbot para Apache

Execute o seguinte comando em seu terminal para gerar seu certificado SSL usando Certbot.

sudo certbot --dry-run --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Para quem é novo no Let's Encrypt, você pode buscar mais informações sobre a abreviatura no comando.

  • A opção “–dry-run” permite executar um teste do processo de geração de certificado sem alterar o sistema. Esta opção é valiosa para testes.
  • A opção “–apache” serve para gerar um certificado para um servidor web Apache.
  • A opção “–agree-tos” permite que você aceite os termos de serviço da Let's Encrypt, a autoridade certificadora que fornece o certificado SSL.
  • A opção “–redirect” redireciona automaticamente todo o tráfego HTTP para HTTPS.
  • A opção “–hsts” habilita HTTP Strict Transport Security (HSTS). Esse recurso de segurança ajuda a proteger contra ataques de downgrade de protocolo e sequestro de cookies, informando aos navegadores para acessarem seu site apenas por meio de uma conexão HTTPS segura.
  • A opção “–staple-ocsp” permite o grampeamento do Online Certificate Status Protocol (OCSP), que verifica o status de revogação de um certificado SSL sem entrar em contato com a autoridade de certificação.
  • Use a opção “–email” para especificar o endereço de e-mail que deseja associar ao certificado.
  • A opção “-d” especifica o nome de domínio para o qual você irá gerar o certificado. Neste exemplo, o nome de domínio é “www.example.com”.

Alternativamente, você pode usar o seguinte comando e seguir as instruções passo a passo para uma experiência mais acessível.

sudo certbot certonly --apache

Ao executar o comando com os parâmetros mencionados, você está direcionando o certbot para criar um certificado SSL para o seu domínio “www.example.com”, ao mesmo tempo que inclui os recursos de segurança necessários, como um redirecionamento HTTPS 301 forçado, cabeçalho Strict-Transport-Security e Grampeamento OCSP. É importante observar que você deve substituir o endereço de e-mail no comando pelo seu próprio e também substituir o nome de domínio “www.example.com” pelo nome de domínio desejado.

Configurando SSL no Apache

Após obter o certificado SSL, configure seu servidor Apache para utilizá-lo. Edite o ssl.conf arquivo e adicione as seguintes linhas, substituindo “example.com” pelo seu domínio:

sudo nano /etc/httpd/conf.d/ssl.conf

No arquivo de configuração, adicione as seguintes linhas: substitua “example.com” pelo seu nome de domínio.

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

Salve as alterações e reinicie o Apache para que a configuração tenha efeito.

sudo systemctl restart httpd 

Esta configuração garante uma comunicação criptografada e segura entre os navegadores e o seu site.

Automatizando a renovação de certificados

Para manter o certificado SSL atualizado, configure um cron job para renovação automática. Teste o processo de renovação com uma simulação:

sudo certbot renew --dry-run

Verifique os temporizadores usando o comando systemctl list-timers e confirme se “snap.certbot.renew.timer” está presente.

systemctl list-timers snap.certbot.renew.timer

Use o comando “systemctl list-timers –all” para visualizar temporizadores ativos e inativos em seu sistema. Este comando apresenta uma visão geral de todos os temporizadores, incluindo o “snap.certbot.renew.timer”. O “snap.certbot.renew.timer” garante a verificação e renovação automática do seu certificado antes da expiração. Assim, você elimina preocupações quanto ao processo de renovação.

systemctl list-timers --all

Gerenciamento Apache HTTPD

Com o Apache configurado com sucesso em seu servidor, aqui estão alguns pontos essenciais a serem lembrados para um gerenciamento eficaz.

Registros do servidor Apache

Os logs do servidor Apache são armazenados no diretório em /var/log/httpd/. Os nomes de arquivo padrão para os logs de acesso e de erros são access.log e error.log, respectivamente. No entanto, é possível alterar esses nomes no arquivo de configuração do host virtual.

Aqui está um exemplo de alteração dos logs do servidor Apache no arquivo de configuração do host virtual.

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/example.com
    
    # Change access log to custom-access.log
    CustomLog /var/log/httpd/custom-access.log combined
    
    # Change error log to custom-error.log
    ErrorLog /var/log/httpd/custom-error.log
</VirtualHost>

Este exemplo altera os logs de acesso e de erros para custom-access.log e custom-error.log, respectivamente. Você pode alterar os nomes dos arquivos de log para o que preferir e atualizar o caminho correspondente no arquivo de configuração do host virtual.

Comandos Apache

Aqui estão alguns dos comandos usados ​​com frequência ao gerenciar o Apache:

Pare o servidor web Apache:

sudo systemctl stop httpd

Inicie o servidor web Apache:

sudo systemctl start httpd

Reinicie o servidor Apache:

sudo systemctl restart httpd

Recarregue o servidor Apache:

sudo systemctl reload httpd

Desative o Apache na inicialização do servidor:

sudo systemctl disable httpd

Habilite o Apache na inicialização do servidor:

sudo systemctl enable httpd

Como atualizar o Apache HTTPD

Para manter o Apache atualizado, execute o comando que você normalmente usa para verificar se o seu sistema está atualizado.

sudo dnf update --refresh

É importante fazer backups ou criar imagens do seu sistema antes de realizar qualquer atualização, pois às vezes podem ocorrer bugs. O comando a seguir atualizará todos os pacotes do sistema, incluindo o Apache, e solicitará que você atualize.

Como remover o Apache HTTPD

Para desinstalar o Apache do seu sistema, use o seguinte comando.

sudo systemctl disable httpd --now

Agora, use o seguinte comando para remover completamente o Apache.

sudo dnf remove httpd

Os arquivos restantes podem persistir no diretório principal /etc/httpd, então vamos apagar essa pasta.

sudo rm -R /etc/httpd/

Conclusão

Com o Apache HTTP Server e o Let's Encrypt configurados com sucesso em seu sistema CentOS Stream, seu site será robusto e seguro. Atualizar regularmente o Apache e renovar seu certificado SSL Let's Encrypt ajudará a manter a segurança e o desempenho ideais. Aproveite a confiabilidade e a segurança que o Apache HTTP Server e o Let's Encrypt trazem para o seu ambiente de hospedagem na web.

Joshua James
Me siga
Últimos posts por Joshua James (exibir todos)

Deixe um comentário