Apache2, PHP5, MySQL5 e PhpMyAdmin com certificação SSL no Debian Etch

O uso do LAMP (Linux, Apache, MySQL e PHP) vem se tornando cada vez mais comum devido a vários fatores, mas principalmente por sua estabilidade e seu baixo custo. Outra ferramenta que é muito utilizada é o PhpMyAdmin. Através dele é possível acessar sua base de dados MySQL a partir de qualquer host na internet.

Quando conectamos ao PhpMyAdmin devemos nos identificar junto ao MySQL, para isso devemos fornecer nossos dados de usuários. Neste momento cruzamos o dedo para que ninguém esteja interceptando os pacotes, pois estes dados são transmitidos em texto claro do host para o servidor.

Pensando nisso decidi criar uma forma de poder autenticar usuário no PhpMyAdmin de forma segura, como? Utilizando SSL.

Neste tutorial demonstrarei como instalar de forma rápida e fácil o Apache2, PHP5, MySQL5 e PhpMyAdmin com certificação SSL no Debian Etch.

Instalação
Instalação de pacotes no Debian não tem nenhum segredo, basta utilizar o apt-get.

Apache2:
# apt-get -y install apache2

PHP5 + Módulo Apache:

# apt-get -y install libapache2-mod-php5 php5-cli php5-common php5-cgi

MySQL5:

# apt-get -y install mysql-server mysql-server-5.0

Antes de continuar devemos configurar a senha de root para o MySQL, da seguinte forma:

# mysqladmin -u root -p password UmaBoaSenha

Será pedida a senha anterior, por padrão o MySQL é instalado sem senha, neste caso tecle ENTER.

PhpMyAdmin:

# apt-get -y install phpmyadmin

OpenSSL:

# apt-get -y install openssl ssl-cert

Pacotes instalados e funcionando, caso queira verificar basta digitar no browser o endereço da sua máquina, ex: http://localhost/, você vai visualizar a seguinte frase:

It Works!

Para testar o MySQL e o PHP digite: http://localhost/phpmyadmin.

Com tudo funcionando, devemos agora criar um certificado SSL, para isso utilize o comando:

# openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

Ao executar esse comando as seguintes perguntas lhe serão feitas:

Country Name (2 letter code) [AU]: BR
State or Province Name (full name) [Some-State]: Goias
Locality Name (eg, city) []: Goiania
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Tiago Company Ltd
Organizational Unit Name (eg, section) []: DptTecnologi
Common Name (eg, YOUR name) []: localhost
Email Address []: meuemail@dominio.com

Responda as perguntas conforme sua necessidade. Atente-se para o campo Common Name, nele você deve digitar o domínio ou o nome do host onde seu certificado vai ser instalado.

Feito isso, dê permissão de leitura e escrita apenas pro root no arquivo /etc/apache2/apache.pem:

# chmod 600 /etc/apache2/apache.pem

Edite o arquivo /etc/apache2/ports.conf e adicione a seguinte linha:

Listen 443

Habilite o suporte a SSL no apache da seguinte forma:

# a2enmod ssl

Edite o arquivo /etc/apache2/sites-avaliable/default e deixe-o da seguinte forma:

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>

<VirtualHost *:443>
DocumentRoot /var/www-ssl/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www-ssl/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
SSLEngine on
ServerSignature on
SSLCertificateFile /etc/apache2/apache.pem
</VirtualHost>

Salve e feche o arquivo. Agora crie a pasta /var/www-ssl:

# mkdir /var/www-ssl

Mova o link simbólico /var/www/phpmyadmin para /var/www-ssl/phpmyadmin:

# mv /var/www/phpmyadmin /var/www-ssl/phpmyadmin

Reinicie o apache:

# /etc/init.d/apache2 restart

Verifique se tudo ocorreu corretamente, digite no browser: https://localhost/phpmyadmin

Você notará que será alertado quando à não confiabilidade da CA (Autoridade Certificadora), isso se dá pois o certificado que você gerou não está ligado hierarquicamente a CA raiz, para que você possa ter um certificado ligado a raiz, é necessário comprar um certificado. Existem muitos CAs, inclusive uma brasileira muito conhecida, a Certising (www.certising.com.br).

OBS: Qualquer outra aplicação que você queira que seja criptografada, basta colocá-la no diretório /var/www-ssl/.

Pronto, você agora poderá logar no seu phpmyadmin que sua senha estará criptografada, evitando assim que alguém possa interceptá-la.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: