Virtual Host com Apache + SSL
Virtual Host é a capacidade de hospedar mais do que um web site numa única máquina, seja com um endereço IP ou mais. SSL adiciona uma camada segura às comunicações via HTTP. Nesse artigo aprenderemos os fundamentos básicos para se configurar virtual hosts comuns e com SSL.
Parte 6: Gerando certificados SSL e modificando o arquivo ssl.conf
1. Vá até onde foi instalado o OpenSSL e digite:
# openssl req -new > new.cert.csr
Vai aparecer algo como:
Generating a 1024 bit RSA private key
...............++++++
......++++++
writing new private key to \\\\\\\' privkey.pem\\\\\\\'
Enter PEM pass phrase:
Informe uma senha (mas não esqueça dela) e responda as perguntas que se seguirem.
2. Digite:
# openssl rsa -in privkey.pem -out new.cert.key
Você precisará informar a senha dada anteriormente.
3. Digite:
# openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 1825
4. Vamos renomear os arquivos new.cert.cert e new.cert.key:
# mv new.cert.cert server.crt
# mv new.cert.key server.key
5. No diretório /usr/local/apache2/conf deve existir os diretórios ssl.crt e ssl.key, se não existir, crie.
6. Copie o arquivo server.crt para o diretório /usr/local/apache2/conf/ssl.crt e o arquivo server.key para o diretório /usr/local/apache2/conf/ssl.key.
7. Abra o arquivo ssl.conf que está em /usr/local/apache2/conf/.
8. Tem uma parte no arquivo ssl.conf que se inicia com <VirtualHost _default_:443>...'um monte de coisa'... e termina com </VirtualHost>. Entre eles adicione o seguinte:
# openssl req -new > new.cert.csr
Vai aparecer algo como:
Generating a 1024 bit RSA private key
...............++++++
......++++++
writing new private key to \\\\\\\' privkey.pem\\\\\\\'
Enter PEM pass phrase:
Informe uma senha (mas não esqueça dela) e responda as perguntas que se seguirem.
2. Digite:
# openssl rsa -in privkey.pem -out new.cert.key
Você precisará informar a senha dada anteriormente.
3. Digite:
# openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 1825
4. Vamos renomear os arquivos new.cert.cert e new.cert.key:
# mv new.cert.cert server.crt
# mv new.cert.key server.key
5. No diretório /usr/local/apache2/conf deve existir os diretórios ssl.crt e ssl.key, se não existir, crie.
6. Copie o arquivo server.crt para o diretório /usr/local/apache2/conf/ssl.crt e o arquivo server.key para o diretório /usr/local/apache2/conf/ssl.key.
7. Abra o arquivo ssl.conf que está em /usr/local/apache2/conf/.
8. Tem uma parte no arquivo ssl.conf que se inicia com <VirtualHost _default_:443>...'um monte de coisa'... e termina com </VirtualHost>. Entre eles adicione o seguinte:
ServerName www.meusite1.com:443
DocumentRoot /usr/local/apache2/htdocs/meusite1
DocumentRoot /usr/local/apache2/htdocs/meusite1
Como padrão, será usada a porta 443.
9. Pare o Apache com o comando:
# /usr/local/apache2/bin/apachectl stop
E o inicie com o comando:
# /usr/local/apache2/bin/apachectl startssl
Este comando significa que o Apache será iniciado com suporte ao SSL.
Pronto, o Virtual Host seguro foi criado. Agora para acessar seu site, no navegador, digite o endereço desta forma:
https://www.meusite1.com
Observe o "s" logo depois do http, se não for incluído no endereço, será requisitado o site não seguro.
Esta parte foi baseada na dica do Thiago Alves que está em:
Eu uso slackware, o openssl ja vai instalado por default, pra atualizar eu baixo um .tgz do site oficial e atualizo e no apache 2 eu coloco apenas o --enable-ssl e --enable-so, funciona tambem.
Eu ate fiz uma dica, nao lembro, sobre como ativar o ssl no apache2 mas nao abordei a forma de configurar vhosts com ssl.
http://www.vivaolinux.com.br/dicas/verDica.php?codigo=1512