É impressionante a quantidade de material incompleto que existe espalhado pela rede...
1º passo: Instalando os pacotes
Apache2
$ sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1
OpenSSL
$ sudo apt-get install openssl ssl-cert
MySQL
$ sudo apt-get install mysql-server-5.0
Durante a instalação do MySQL você será questionado pela senha do 'root', basta digita-la na caixa que texto que aparecerá no terminal e apertar
PHP5
$ sudo apt-get install php5 libapache2-mod-php5 php5-mysql php5-gd
Terminada a instalação é hora de configurar o Apache e o SSL
2º passo: Configurando o SSL
Primeiro vamos gerar os certificados, entre no diretório /etc/apache2/ (como root) e crie um diretório chamado ssl. Depois execute o 2o comando, listado abaixo, e responda as perguntas necessárias para a criação do certificado.
# mkdir /etc/apache2/ssl
# make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
Como root, copie o arquivo /etc/apache2/sites-available/default
# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
Modifique o arquivo para usar a porta 443 e habilite a função SSL usando o certificado que criamos anteriormente:
NameVirtualHost *:443
VirtualHost *:443
ServerAdmin webmaster@localhost
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl/apache.pem
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
DocumentRoot /var/www/
ServerName seudominio.mine.nu
Salve e feche o arquivo. Para terminar a configuração só falta carregar alguns módulos do Apache (SSL, rewrite e include) e o novo "site" :
#
# a2enmod ssl
# a2enmod rewrite
# a2enmod include
Recarregue a configuração do Apache:
# /etc/init.d/apache2 force-reload
Então, reinicialize o Apache:
# /etc/init.d/apache2 restartPara testar se tudo deu certo, entre no diretório /var/www/
Crie um arquivo chamado teste.php e escreva dentro dele "" e depois no seu navegador digite
http://localhost/teste.php
Se tudo correu bem, uma página com informações do PHP. Creio que este tutorial deve bastar para a criação de Webserver pessoal, vou tentar ir melhorando-o até chegar a um ponto mais profissional.
2 comentários:
Cara, seu tutorial ajudou muito. Sério.
Mas tem uma coisa que não ficou muito clara. Quando se edita o arquivo /etc/apache2/sites-avaible/ssl as modificações serão aplicadas a quais sites?
Tive a impressão que isto faz todas as páginas e sites passarem por uma conexão SSL. Em outras palavras, não há como definir quais páginas estarão debaixo do SSl e quais não.
Acho que se você complementasse esclarecendo isso deixaria este tutorial mais específico.
Digo isso porque durante a vida útil de um server, considerando que ele seja uma estação de desenvolvimento, vários projetos serão lá escritos e nem todos têm a necessidade de rodar sob o SSL. Mais que isso. A maioria dos sites têm a parte pública - sem SSL, apenas informações cruas - e a parte com SSL - áreas gerenciais, administrativas, logins, etc, que ficam sob a proteção do SSL.
Assim para simular um ambiente mais real com a produção seria interessante poder fazer essa distinção.
No apache acho que isso se traduz como SSL para um virtual host específico. Por exemplo um site com a parte administrativa teria dois Virtual Hosts. Um para www.site.com (sem ssl) e outra para secure.site.com (com ssl).
Se essa distinção estivesse especificada, este seria "o" tutorial. Espero que encare isso como uma crítica construtiva.
Parabéns pelo tutorial
Encaro sim como uma crítica construtiva, do jeito que está o tutorial, qualquer página pode ser acessada via ssl, basta colocar https:// no endereço.
Para hosts específicos há a necessidade de usar Virtual Hosts como você disse.
Não acrescentei isso ao tutorial pois estou sem tempo e o foco principal do tutorial era a criação de um webserver doméstico.
Se você puder me mandar essa parte, colocarei no tutorial com os devidos créditos
Postar um comentário