X

Virtual host no apache2 com/sem SSL

Com a finalidade de tornar o apache2 em um servidor web com multiplos websites instalados vamos agora fazer a configuração de um novo virtual host, ou seja um servidor web virtual dentro de um servidor apache2.

Em nosso exemplo vamos criar um arquivo de configuração para uso do phpmyadmin.
Edite / crie o arquivo /etc/apache2/sites-available/phpmyadmin com o conteúdo abaixo.

#### Arquivo de Configuração do PHPMyadmin ####
<VirtualHost *:80>
#se for SSL habilite a linha abaixo
#<VirtualHost *:443>

ServerAdmin webmaster@localhost
ServerName phpmyadmin.dominio.com
ServerAlias phpmyadmin.dominio.com
DocumentRoot /var/www/phpmyadmin
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/phpmyadmin>
Options Indexes
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error_phpmyadmin.dominiocom.log
LogLevel warn
CustomLog /var/log/apache2/access_phpmyadmin.dominio.com.log combined
#se for SSL habilite as linhas abaixo
#SSLEngine on
#SSLCertificateFile “/etc/apache2/ssl/phpmyadmin.crt”
#SSLCertificateKeyFile “/etc/apache2/ssl/phpmyadmin.key”
</VirtualHost>
#### Final do Arquivo de configuração

Visando dar mais segurança ao servidor virtual edite o arquivo .htaccess da aplicação phpmyadmin, adicione no final do arquivo com o seguinte comando:
# echo”Options -Indexes”>>/var/www/phpmyadmin/.htaccess

Exemplo do arquivo .htaccess

AuthType Basic
AuthName “WebSite”
AuthUserFile “/var/www/phpmyadmin/.htpasswd”
require valid-user
Options -Indexes

Reload no Servidor web /etc/init.d/apache2 reload

Já para remover informações do apache como versão e SO no arquivo /etc/apache2/conf.d/security localize neste arquivo estas duas linhas e deixe como no exemplo abaixo:

ServerSignature Off
#ServerSignature On

A partir de agora adicione no Servidor de DNS um entrada para phpmyadmin.dominio.com com valor no ip do servidor.

#se for SSL configure abaixo o certificado de segurança.
Criação de um certificado de segurança para este dominio
# cd /etc/apache2/
# mkdir ssl
# cd ssl

Vamos criar a chave privada
# openssl genrsa -des3 -out phpmyadmin.key 2048

Agora vamos criar o CSR (Requisição de certificado de assinatura), utilizando a chave privada:
# openssl req -new -key phpmyadmin.key -out phpmyadmin.csr

Criar o Certificado
# openssl x509 -req -in phpmyadmin.csr -signkey phpmyadmin.key -out phpmyadmin.crt

Habitar o modulo
# cd /etc/apache2/mods-available/
# a2enmod ssl