Como configurar o servidor Apache independente com hospedagem virtual baseada em nome com certificado SSL - Parte 4

Como configurar o servidor Apache independente com hospedagem virtual baseada em nome com certificado SSL - Parte 4

A LFCE (abreviatura de Engenheiro Certificado da Fundação Linux) é um profissional treinado que tem a experiência de instalar, gerenciar e solucionar problemas de serviços em sistemas Linux e é responsável pelo design, implementação e manutenção contínua da arquitetura do sistema.

Neste artigo, mostraremos como configurar o Apache para servir o conteúdo da Web e como configurar hosts virtuais baseados em nomes e SSL, incluindo um certificado autoassinado.

Engenheiro Certificado da Fundação Linux - Parte 4

Apresentando o Programa de Certificação da Fundação Linux (LFCE).

Observação: Que este artigo não deve ser um guia abrangente sobre o Apache, mas um ponto de partida para auto-estudo sobre este tópico para o LFCE exame. Por esse motivo, não estamos cobrindo o balanceamento de carga com o Apache neste tutorial.

Você já deve conhecer outras maneiras de executar as mesmas tarefas, o que é OK Considerando que a certificação Linux Foundation é estritamente baseada em desempenho. Assim, desde que você 'Faça o trabalho', Você tem boas chances de passar no exame.

Requisitos

Por favor, consulte Parte 1 da série atual (“Instalando serviços de rede e configuração de inicialização automática em inicialização”) para obter instruções sobre a instalação e o início do Apache.

Até agora, você deve instalar o servidor Web Apache e executando. Você pode verificar isso com o seguinte comando.

# ps -ef | grep -ei '(apache | httpd)' | grep -v grep 

Observação: Que o comando acima verifica a presença de qualquer um apache ou httpd (os nomes mais comuns para o daemon da web) entre a lista de processos em execução. Se o Apache estiver em execução, você obterá saída semelhante ao seguinte.

Verifique os processos do Apache

O método final de testar a instalação do Apache e verificar se está em execução está lançando um navegador da web e aponta para o IP do servidor. Devemos receber a tela a seguir ou pelo menos uma mensagem confirmando que o Apache está funcionando.

Verifique a página da web do Apache

Configurando o Apache

O principal arquivo de configuração do Apache pode ser localizado em diferentes diretórios, dependendo da sua distribuição.

/etc/apache2/apache2.conf [para ubuntu]/etc/httpd/conf/httpd.conf [para centros]/etc/apache2/httpd.conf [para openSuse] 

Felizmente para nós, as diretivas de configuração estão extremamente bem documentadas no site do Apache Project. Vamos nos referir a alguns deles ao longo deste artigo.

Servindo páginas em um servidor independente com Apache

O uso mais básico do Apache é servir páginas da web em um servidor independente, onde nenhum host virtual foi configurado ainda. O Documentroot A Diretiva especifica o diretório do qual o Apache servirá documentos de páginas da web.

Observe que, por padrão, todas as solicitações são obtidas neste diretório, mas você também pode usar links e / ou aliases simbólicos podem ser usados ​​para apontar para outros locais também.

A menos que corresponda pelo Alias Diretiva (que permite que os documentos sejam armazenados no sistema de arquivos local em vez de no diretório especificado por Documentroot), o servidor anexa o caminho do URL solicitado à raiz do documento para fazer o caminho para o documento.

Por exemplo, dado o seguinte Documentroot:

Apache Documentroot

Quando o navegador da web aponta para [IP do servidor ou nome de anfitrião]/LFCE/TECMINT.html, O servidor vai abrir /var/www/html/lfce/tecmint.html (assumindo que esse arquivo existe) e salve o evento em seu log de acesso com um 200 (OK) resposta.

O log de acesso normalmente é encontrado dentro /var/log sob um nome representativo, como acesso.registro ou access_log. Você pode até encontrar este log (e o log de erros também) dentro de um subdiretório (por exemplo, /var/log/httpd em centros). Caso contrário, o evento fracassado ainda será registrado no log de acesso, mas com um 404 (Não encontrado) Resposta.

Apache Access Log

Além disso, os eventos fracassados ​​serão registrados no log de erros:

Log de erros do Apache

O formato do log de acesso pode ser personalizado de acordo com suas necessidades usando o LogFormat diretiva no arquivo de configuração principal, enquanto você não pode fazer o mesmo com o log de erros.

O formato padrão do log de acesso é o seguinte:

LogFormat " %H %L %U %T \" %r \ "" %> S %B"" [apelido] 

Onde cada uma das letras precedidas por um sinal percentual indica o servidor para registrar uma determinada informação:

Corda Descrição
 %h  Nome do host remoto ou endereço IP
 %eu  Nome do log remoto
 %você  Usuário remoto se a solicitação for autenticada
 %t  Data e hora em que o pedido foi recebido
 %r  Primeira linha de solicitação ao servidor
 %> s  Status final do pedido
 %b  Tamanho da resposta [bytes]

e apelido é um alias opcional que pode ser usado para personalizar outros logs sem precisar inserir toda a string de configuração novamente.

Você pode se referir ao LogFormat Diretiva [seção de formatos de log personalizada] nos documentos Apache para outras opções.

Ambos os arquivos de log (acesso e erro) representar um ótimo recurso para analisar rapidamente o que está acontecendo no servidor Apache. Escusado será dizer que eles são a primeira ferramenta que um administrador do sistema usa para solucionar problemas.

Finalmente, outra diretiva importante é Ouvir, que diz ao servidor para aceitar solicitações de entrada na porta especificada da porta ou endereço/porta:

Se apenas um número de porta for definido, o Apache ouvirá a porta fornecida em todas as interfaces de rede (o sinal de curinga * é usado para indicar 'todas as interfaces de rede').

Se o endereço IP e a porta forem especificados, o Apache ouvirá a combinação de determinada porta e interface de rede.

Observe (como você verá nos exemplos abaixo) que várias diretivas de escuta podem ser usadas ao mesmo tempo para especificar vários endereços e portas para ouvir. Esta opção instrui o servidor a responder a solicitações de qualquer um dos endereços e portas listados.

Configurando hosts virtuais baseados em nomes

O conceito de host virtual define um site individual (ou domínio) que é servido pela mesma máquina física. Na verdade, vários sites / domínios podem ser servidos de um único “real”Servidor como host virtual. Esse processo é transparente para o usuário final, a quem parece que os diferentes sites estão sendo servidos por servidores da Web distintos.

A hospedagem virtual baseada em nomes permite que o servidor confie no cliente para relatar o nome do host como parte dos cabeçalhos HTTP. Assim, usando esta técnica, muitos hosts diferentes podem compartilhar o mesmo endereço IP.

Cada host virtual é configurado em um diretório dentro Documentroot. Para o nosso caso, usaremos os seguintes domínios fictícios para a configuração de teste, cada um localizado no diretório correspondente:

  1. ILOVELinux.com - /var/www/html/ilovelinux.com/public_html
  2. LinuxRocks.org - /var/www/html/linuxRocks.org/public_html

Para que as páginas sejam exibidas corretamente, iremos chmod Diretório de cada virtualhost para 755:

# chmod -r 755/var/www/html/ilovelinux.com/public_html # chmod -r 755/var/www/html/linuxrocks.org/public_html 

Em seguida, crie uma amostra índice.html arquivo dentro de cada um public_html diretório:

  www.ILOVELinux.com   

Esta é a página principal de www.ILOVELinux.com

Finalmente, em CENTOS e OpenSuse Adicione a seção a seguir na parte inferior de /etc/httpd/conf/httpd.conf ou /etc/apache2/httpd.conf, respectivamente, ou apenas modifique -o se já estiver lá.

 ServerAdmin [Email Protected] Documentroot/var/www/html/ilovelinux.com/public_html servername www.ILOVELinux.com Serveralias www.ILOVELinux.Com Ilovelinux.COM ERROLOG/VAR/WWW/HTML/ILOVELinux.com/erro.logFormat "" %V %L %u %t \"" %r \ "" %> s %b"" MyVHost CustomLog/var/www/html/ilovelinux.com/acesso.Log MyVhost ServerAdmin [Email Protected] Documentroot/var/www/html/linuxrocks.org/public_html servername www.LinuxRocks.Org Serveralias www.LinuxRocks.org linuxrocks.org errorlog/var/www/html/linuxRocks.org/erro.logFormat "" %V %L %u %t \"" %r \ "" %> S %b"" MyVHost CustomLog/var/www/html/linuxrocks.org/acesso.registre myvhost  

Observe que você também pode adicionar cada definição de host virtual em arquivos separados dentro do /etc/httpd/conf.d diretório. Se você optar por fazer isso, cada arquivo de configuração deve ser nomeado da seguinte maneira:

/etc/httpd/conf.D/ILOVELinux.com.conf/etc/httpd/conf.D/LinuxRocks.org.conf 

Em outras palavras, você precisa adicionar .conf para o site ou nome de domínio.

Em Ubuntu, Cada arquivo de configuração individual é nomeado /etc/apache2/sites-averable/[nome do site].conf. Cada site é então ativado ou desativado com o A2ensite ou A2Dissite comandos, respectivamente, como segue.

# a2ensite/etc/apache2/sites-averable/ilovelinux.com.conf # a2dissite/etc/apache2/sites-anicable/ilovelinux.com.conf # a2ensite/etc/apache2/sites-available/linuxrocks.org.conf # a2dissite/etc/apache2/sites-available/linuxrocks.org.conf 

O A2ensite e A2Dissite Os comandos criam links para o arquivo de configuração do host virtual e colocam (ou removem) no /etc/apache2/sites-habilitados diretório.

Para poder navegar para os dois sites de outra caixa Linux, você precisará adicionar as seguintes linhas no /etc/hosts Arquive nessa máquina para redirecionar solicitações para esses domínios para um endereço IP específico.

[Endereço IP do seu servidor da Web] www.ILOVELinux.com [endereço IP do seu servidor da web] www.LinuxRocks.org 

Como uma medida de segurança, Selinux não permitirá Apache Para escrever logs em um diretório que não seja o padrão /var/log/httpd.

Você pode desativar o Selinux ou definir o contexto de segurança certo:

# CHCON SYSTEM_U: Object_R: httpd_log_t: s0/var/www/html/xxxxxx/erro.registro 

onde xxxxxxx é o diretório dentro /var/www/html onde você definiu seus hosts virtuais.

Depois de reiniciar o Apache, você deve ver a página seguinte nos endereços acima:

Verifique o Apache VirtualHosts

Instalando e configurando o SSL com Apache

Finalmente, vamos criar e instalar um auto-inscrito Certificado para usar com Apache. Esse tipo de configuração é aceitável em pequenos ambientes, como uma LAN particular.

No entanto, se o seu servidor expor conteúdo ao mundo exterior pela Internet, você desejará instalar um certificado assinado por uma terceira parte para corroborar sua autenticidade. De qualquer maneira, um certificado permitirá criptografar as informações que são transmitidas para, de ou dentro do seu site.

Em CENTOS e OpenSuse, você precisa instalar o mod_ssl pacote.

# yum update && yum install mod_sssl [no CentOS] # zypper refresh && zypper install mod_sssl [no openSuse] 

Enquanto que entra Ubuntu você terá que ativar o módulo SSL para Apache.

# a2enmod ssl 

As etapas a seguir são explicadas usando um CENTOS servidor de teste, mas sua configuração deve ser quase idêntica nas outras distribuições (se você tiver algum tipo de problema, não hesite em deixar suas perguntas usando o formulário de comentários).

Etapa 1 [opcional]: Crie um diretório para armazenar seus certificados.

# mkdir/etc/httpd/sslcerts 

Passo 2: Gerar seu certificado auto -assinado e a chave que o protegerá.

# OpenSSL req -x509 -Nodes -Days 365 -NewKey RSA: 2048 -Keyout/etc/httpd/sslcerts/apache.chave --out/etc/httpd/ssl -certs/apache.Crt 

Uma breve explicação das opções listadas acima:

  1. Req -x509 indica que estamos criando um certificado x509.
  2. -nós (Sem des) significa “não criptografa a chave”.
  3. -Dias 365 é o número de dias em que o certificado será válido para.
  4. -Newkey RSA: 2048 cria uma chave RSA de 2048 bits.
  5. -keyout/etc/httpd/sslcerts/apache.chave é o caminho absoluto da chave RSA.
  6. -out/etc/httpd/ssl-certs/apache.Crt é o caminho absoluto do certificado.
Crie certificado Apache SSL

etapa 3: Abra o arquivo de configuração do host virtual escolhido (ou sua seção correspondente em /etc/httpd/conf/httpd.conf conforme explicado anteriormente) e adicione as seguintes linhas a uma declaração de host virtual ouvindo na porta 443.

Sslegine no SSLCertificatefile/etc/httpd/ssl-certs/apache.CRT SSLCERtificateKeyFile/etc/httpd/ssl-certs/apache.chave 

Observe que você precisa adicionar.

NameVirtualHost *: 443 

no topo, logo abaixo

NameVirtualHost *: 80 

Ambas as diretivas instruem o Apache a ouvir nas portas 443 e 80 de todas as interfaces de rede.

O exemplo a seguir é retirado de /etc/httpd/conf/httpd.conf:

Diretivas Apache VirtualHost

Em seguida, reinicie o Apache,

# Service Apache2 Reiniciar [Sysvinit e Systems baseados no início] # SystemCtl Reiniciar httpd.Serviço [Systemd Systems] 

E aponte seu navegador para https: // www.ILOVELinux.com. Você será apresentado com a seguinte tela.

Verifique o certificado Apache SSL

Vá em frente e clique em “eu entendo os riscos"" e ""Adicione exceção”.

Aviso Apache Ceritficate

Finalmente, verifique “Guarde permanentemente esta exceção""E clique em""Confirme a exceção de segurança”.

Adicione SSL Ceritficate

E você será redirecionado para sua página inicial usando https.

Apache HTTPS ativado

Resumo

Neste post, mostramos como configurar Apache e baseado em nome hospedagem virtual com Ssl Para proteger a transmissão de dados. Se, por algum motivo, você teve algum problema, sinta -se à vontade para nos informar usando o formulário de comentário abaixo. Ficaremos mais do que felizes em ajudá -lo a realizar uma configuração de sucesso.

Leia também

  1. Apache baseado em IP e hospedagem virtual baseada em nome
  2. Criação de hosts virtuais do Apache com opções de ativação/desativação do VHOSTS
  3. Monitore “Apache Web Server” usando a ferramenta “Apache GUI”
Torne -se um engenheiro certificado Linux"