Este artigo assume que você já tenha instalado e funcionando o Apache2 em um Windows 2000/XP/2003. Neste artigo, o Apache2 está instalado em um Windows XP Professional com SP2.
Arquivos Necesários
Você vai precisar fazer o download da versão para Windows do OpenSSL (http://www.slproweb.com/download/Win32OpenSSL-v0.9.8.exe). Para instalar o OpenSSL, dê um clique duplo sobre o arquivo Win32OpenSSL-v0.9.8.exe e siga os passos abaixo:

Tela de boas vindas do programa de instalação do openSSL. clique em "Next >" para ir para a tela com a licença de uso do OpenSSL.

Licença de uso para o OpenSSL. Leia os termos e selecione uma opção para aceitar ou não os termos. Caso você não aceite os termos da licença, o programa de instalação será encerrado. Clique em "Next >".

Escolha o diretório onde vão ser instalados os arquivos do OpenSSL. Aconselho a usar o caminho padrão oferecido como sugestão pelo programa de instalação. Clique em "Next >".

Escolha o nome e o local onde os atalhos no menu iniciar devem ser criados. Aconselho a usar o caminho padrão oferecido como sugestão pelo programa de instalação. Clique em "Next >".

Revise as opções que você escolheu anteriormente. Caso estejam todas corretas, clique em "Install".

O programa de instalação irá copiar todos os arquivos para seu disco rígido.

Após concluída a cópia dos arquivos, clique em "Finish" para encerar o programa de instalação.
Você também vai precisar fazer o download do arquivo ssl.conf e colocar dentro do diretório Apache2\conf.
Criar o certificado de teste
Abra em "Prompt de comando". Navegue até o diretório "/bin" em sua instalação do OpenSSL.
Clique em "Iniciar" e depois em "Executar". Irá aparecer a seguinte tela. Em seguida execute o comando cd C:\OpenSSL\bin.
Microsoft
Windows XP [Version 5.1.2600] |
Estou logado no Windows XP com o usuário "Administrator".
Agora vamos criar o certificado de teste para colocarmos em nosso servidor. No "Prompt de comando". execute o seguinte comando "openssl req -config openssl.cnf -new -out meu-servidor.csr" e preencha as informações que o programa lhe solicita
C:\OpenSSL\bin>openssl
req -config openssl.cnf -new -out meu-servidor.csr C:\OpenSSL\bin> |
Você pode substituir "meu-servidor.csr" para o nome que você quiser, seguido da extenção ".csr". Quando você for solicitado a preencher o "Common Name", dê o nome exato de seu domínio (ex. www.lscalado.com), isso significa que o certificado pertence a esse domínio. Os browsers emitem um alerta quando esse nome não é o mesmo do domínio.
Agora execute o comando "openssl rsa -in privkey.pem -out my-server.key". Isto remove o passphrase da chave privada. Você tem que entender, isto significa que my-server.key só deve ser legível pelo servidor Apache e o Administrador. Você DEVE apagar o arquivo ." rnd" porque contém a informação de "entropy" para criar a chave e poderia ser usado para ataques criptográficos contra sua chave privada.
Agora execute o comando "openssl x509 -in meu-servidor.csr -out my-server.cert -req -signkey my-server.key -days 365". Esse comando cria um certificado assinado que você pode usar até consegur um certificado "real" de uma autoridade certificadora. (Isso é opcional: se você conhecer seus usuários você pode lhes dizer que instalem o certificado em seus browsers).
Nota: esse certificado expira em um ano você pode aumentar isso alterando o valor após o parâmetro "-days 365".
Crie um novo diretório dentro chamado "ssl" dentro do diretório "Apache2\conf" e copie os arquivos "my-server.key" e" my-server.cert" para ele.
Configurando Apache e mod_ssl
Faça o download do mod_ssl e coloque no diretório "Apache2\modules".
Abra o arquivo "httpd.conf" que você encontra em "Apache2\conf" e encontre a diretiva "LoadModule" e adicione a seguinte linha:
<IfModule mod_ssl.c>
Include conf/ssl.conf
LoadModule ssl_module modules/mod_ssl.so
</IfModule>
Após </IfModule> adicione:
SSLMutex default
SSLRandomSeed startup builtin
SSLSessionCache none
Abra o arquivo ssl.conf e configure corretamente o seu domínio e DocumentRoot(o local onde você vai servir seus documentos seguros). Por exemplo em meu servidor os arquivos protegidos com SSL ficam em:
DocumentRoot "D:/ ssl-htdocs"
Reinicie o Apache e acesse https://localhost para você ver localmente se esta tudo correto e depois acesse o domínio que você configurou como por exemplo https://www.lscalado.com.
Finalizando.
Se você tiver alguma questão, entre em contato comigo pelo e-mail leonardo@blog.lscalado.com. Eu também quero dar os créditos a:
Balázs Bárány
Por seu artigo que serviu como base para esta matéria
http://tud.at/programm/apache-ssl-win32-howto.php3
Matt Raible
Por seu artigo, que também serviu como base. http://raibledesigns.com/wiki/Wiki.jsp?page=ApacheSSL