sábado, 18 de julho de 2009

Ativando o SSL


    Ativando o SSL

    A configuração do SSL no Apache 2 é um pouco complicada, pois envolve a modificação de vários arquivos. Vou fazer um apanhado geral, sem explicar muito sobre a configuração de cada arquivo, já que eles são explicados individualmente mais adiante. Sugiro que leia este tópico novamente depois de terminar de ler todo o capítulo.

    O primeiro passo é obter um certificado SSL. Você pode gerar seu próprio certificado, o que é rápido, grátis e indolor, ou adquirir um certificado reconhecido na Verisign ou outra entidade certificadora. O problema de usar um certificado caseiro é que os clientes receberão um aviso de "certificado não reconhecido" ao acessarem a página, emitido pelo próprio navegador. Um certificado reconhecido é caro, mas muitos provedores permitem que você utilize um certificado compartilhado pagando uma taxa anual.

    Você pode obter também um certificado gratuito no: http://www.cacert.org/. Ele é reconhecido pela CAcert, mas o certificado raiz deles não vem pré-instalado na maioria dos navegadores, o que faz com que os clientes continuem recebendo a mensagem de certificado não válido ao acessar o servidor.

    Para gerar um certificado caseiro, use o comando:

    # apache2-ssl-certificate

    No Debian Etch, o script apache2-ssl-certificate não está mais disponível. Nele, você usaria o comando "make-ssl-cert", especificando o arquivo com o template (/usr/share/ssl-cert/ssleay.cnf) e o arquivo onde o certificado será salvo (/etc/apache2/ssl/apache.pem, para gerar um certificado padrão para o servidor), como em:

    # mkdir /etc/apache2/ssl/ # make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

    Ele pergunta várias informações sobre a empresa e sua localização, que os clientes podem verificar quando acessam o site. Se, por acaso, o comando não estiver disponível, verifique a instalação do pacote "ssl-cert".

    O próximo passo é ativar o módulo "ssl" dentro do Apache 2, o que pode ser feito rapidamente usando o comando "a2enmod". Atualize a configuração do servidor para que a alteração entre em vigor:

    # a2enmod ssl # /etc/init.d/apache2 force-reload

    Abra agora o arquivo "/etc/apache2/ports.conf" e adicione a linha "Listen 443" (a porta usada pelo https), como em:

    Port 80 Listen 443

    Com isso, o Apache 2 já está configurado. Falta apenas ativar o uso do SSL dentro da configuração de cada host virtual, ou seja, cada página hospedada no servidor Apache 2. Para testar, vamos ativá-lo na página padrão que usamos para testar o servidor.

    Abra o arquivo "/etc/apache2/sites-available/default". No início do arquivo, substitua a linha "NameVirtualHost *", por:

    NameVirtualHost *:443 NameVirtualHost *:80

    Isso explica que o Apache deve escutar tanto a porta 80 padrão, quanto a porta 443, usada pelo SSL. Logo em seguida, substitua a linha "", por:

    Até aqui, dividimos a configuração em duas seções, uma para a porta 80, outra para a porta 443, usada pelo SSL, Falta agora adicionar a seção referente à configuração do SSL no final do arquivo:

    DocumentRoot /var/www/ ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem

    Reinicie o servidor (/etc/init.d/apache2 restart) e acesse o endereço "https://127.0.0.1" para testar a configuração. Ao conectar, o navegador exibe um aviso "O certificado do servidor falhou no teste de autenticidade" ou similar, o que é normal ao usar um certificado caseiro.


Nenhum comentário:

Postar um comentário