Login:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

Sexta-feira, 05/08/2005 - 14:35 - Por Leonardo Calado
Seções relacionadas:

Instalando SSL no Apache2 em ambiente Windows

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]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator> cd C:\OpenSSL\bin
C:\OpenSSL\bin>

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
Loading "screen" into random state - done
Generating a 1024 bit RSA private key
.++++++
............++++++
writing new private key to "privkey.pem"
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ".", the field will be left blank.
-----
Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:Ceara
Locality Name (eg, city) []:Fortaleza
Organization Name (eg, company) [Internet Widgits Pty Ltd]:lscalado.com
Organizational Unit Name (eg, section) []:Tecnology
Common Name (eg, YOUR name) []:www.lscalado.com
Email Address []:lscalado@blog.lscalado.com
Please enter the following "extra" attributes
to be sent with your certificate request
A challenge password []:secretpass
An optional company name []:secretpass

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

Todos os artigos de Leonardo Calado

2 comentários publicados

  • 1. Configurando SSL no Apache2 em ambiente Windows

    Domingo, 07/08/2005, por Denis Solano

    Bem, gostei muito do seu artigo... Gostaria de saber se isto serve para servidores IIS? se sim como confugurar? veleu gostei muito mesmo

    Responder comentário
  • 2. IIS

    Quarta-feira, 26/04/2006, por Joanilson Bertoloti

    Como fazer Isso no IIS...valeu...

    Responder comentário

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Leonardo Calado trabalha profissionalmente com tecnologias de internet desde 2000, possui experiência em servidores web (Apache, IIS, Xitami e etc), sistemas operacionais baseados em UNIX e tecnologias Microsoft. Também presta consultoria na área de desenvolvimento e gerência de projetos. Quando encontra algum tempo livre entre trabalho, esposa e filha gosta de estudar novas tecnologias, pesquisar tendências e codificar em C/C++ fazendo alterações em projetos opensource.


Indique para um amigo

captcha


2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.