Como configurar o servidor Apache independente com hospedagem virtual baseada em nome com certificado SSL - Parte 4
- 692
- 142
- Ms. Travis Schumm
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 4Apresentando 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 ApacheO 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 ApacheConfigurando 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 DocumentrootQuando 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 LogAlém disso, os eventos fracassados serão registrados no log de erros:
Log de erros do ApacheO 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:
- ILOVELinux.com - /var/www/html/ilovelinux.com/public_html
- 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.comEsta é 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 VirtualHostsInstalando 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:
- Req -x509 indica que estamos criando um certificado x509.
- -nós (Sem des) significa “não criptografa a chave”.
- -Dias 365 é o número de dias em que o certificado será válido para.
- -Newkey RSA: 2048 cria uma chave RSA de 2048 bits.
- -keyout/etc/httpd/sslcerts/apache.chave é o caminho absoluto da chave RSA.
- -out/etc/httpd/ssl-certs/apache.Crt é o caminho absoluto do certificado.
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 VirtualHostEm 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 SSLVá em frente e clique em “eu entendo os riscos"" e ""Adicione exceção”.
Aviso Apache CeritficateFinalmente, verifique “Guarde permanentemente esta exceção""E clique em""Confirme a exceção de segurança”.
Adicione SSL CeritficateE você será redirecionado para sua página inicial usando https.
Apache HTTPS ativadoResumo
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
- Apache baseado em IP e hospedagem virtual baseada em nome
- Criação de hosts virtuais do Apache com opções de ativação/desativação do VHOSTS
- Monitore “Apache Web Server” usando a ferramenta “Apache GUI”
- « Configurando o Squid Proxy Server com acesso restrito e configuração de clientes para usar proxy - Parte 5
- Um guia definitivo para configurar o servidor FTP para permitir logins anônimos »