Você está na página 1de 5

Guia foca Linux/Avanado/Apache/Uso de criptografia SSL

Guia foca Linux/Avanado/Apache/Uso de criptografia SSL


12.13 Uso de criptografia SSL
Esta seo uma referncia rpida para configurao e uso do mdulo apache-ssl com o servidor Apache. Este mdulo realiza a comunicao segura de dados (criptografada) via porta 443 (que usada como padro quando especificamos uma url iniciando com https:/ / ''). A transmisso criptografada de dados importante quanto temos dados confidenciais que precisamos transmitir como movimentao bancria, senhas, nmero de cartes de crdito, fazer a administrao remota do servidor, etc. SSL significa Secure Sockets Layer (camada segura de transferncia) e TLS Transport Layer Security (camada segura de Transporte). A inteno aqui fornecer explicaes prticas para colocar um servidor Apache com suporte a SSL funcionando no menor tempo possvel. Detalhes sobre funcionamento de certificados, mtodos de criptografia, assinatura, etc. devero ser buscados na documentao deste mdulo ou em sites especializados ( um assunto muito longo).

12.13.1 Servidor apache com suporte a ssl


Ao invs de utilizar o mdulo mod_ssl, voc poder usar o pacote apache-ssl, ele nada mais que um servidor Apache com o suporte SSL j incluso e no interfere no servidor Apache padro, porque executado somente na porta 443. Se voc tem um grande site com configuraes de acesso personalizadas, ele trar mais trabalho de administrao, pois as configuraes e diretivas de restries de acesso devero ser copiadas para este servidor web. No entanto, ele indicado para mquinas que sero servidores SSL dedicados ou quando no possui configuraes especiais em seu servidor web principal. Esta seo tem por objetivo a instalao do suporte ao mdulo SSL (mod_ssl) no servidor Apache padro.

12.13.2 Instalando o suporte a mdulo SSL no Apache


Instale o pacote libapache-mod-ssl. Aps instala-lo, edite o arquivo /etc/apache/httpd.conf adicionando a linha: LoadModule ssl_module /usr/lib/apache/1.3/mod_ssl.so Depois, gere um certificado digital ssl com o programa mod-ssl-makecert. Ele ser armazenado por padro nos diretrios em /etc/apache/ssl.??? e seu uso explicado no resto desta seo.

12.13.3 Gerando um certificado digital


O certificado digital a pea que garante a transferncia segura de dados. Ele contm detalhes sobre a empresa que far seu uso e quem o emitiu. Para gerar ou modificar um certificado digital, execute o comando mod-ssl-makecert e siga as instrues. O mtodo de criptografia usado pelo certificado digital baseado no conceito de chave pblica/privada, a descrio sobre o funcionamento deste sistema de criptografia feito em [ch-d-cripto.html#s-d-cripto-gpg Usando pgp (gpg)para criptografia de arquivos, Seo 20.5]. OBS No utilize acentos nos dados de seu certificado.

Guia foca Linux/Avanado/Apache/Uso de criptografia SSL

12.13.4 Exemplo de configurao do mdulo mod-ssl


Abaixo uma configurao rpida para quem deseja ter um servidor com suporte a SSL funcionando em menor tempo possvel (ela feita para operar em todas as instalaes e no leva em considerao o projeto de segurana de sua configurao atual do Apache). Note que todas as diretivas relacionadas com o mdulo mod_ssl comeam com o nome "SSL":
# Somente processa as diretivas relacionadas a SSL caso o mdulo mod_ssl estiver # carregado pela diretiva LoadModule <IfModule mod_ssl.c> # necessrio especificar as portas que o servidor Web aguardar conexes (normais e # ssl). Listen 80 Listen 443

# Ativa o tratamento de conexes com o destino na porta 443 pela diretiva # VirtualHost abaixo <VirtualHost _default_:443>

# Ativa ou desativa o mdulo SSL para este host virtual SSLEngine on

# Certificado do servidor SSLCertificateFile /etc/apache/ssl.crt/server.crt

# Chave privada de certificado do servidor. SSLCertificateKeyFile /etc/apache/ssl.key/server.key

# A linha abaixo fora o fechamento de conexes quando a # conexo com o navegador Internet Explorer interrompida. Isto # viola o padro SSL/TLS mas necessrio para este tipo de # navegador. Alguns problemas de conexes de navegadores tambm # so causados por no saberem lidar com pacotes keepalive. SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

</VirtualHost>

</IfModule>

################################################################################# # Adicionalmente podero ser especificadas as seguintes opes para modificar # o comportamento da seo SSL (veja mais detalhes na documentao do mod-ssl) # #

#################################################################################

# Formato e localizao do cache paralelo de processos da seo. O cache de seo # feito internamente pelo mdulo mas esta diretiva acelera o processamento # de requisies paralelas feitas por modernos clientes navegadores. Por padro # nenhum cache usado ("none").

Guia foca Linux/Avanado/Apache/Uso de criptografia SSL


SSLSessionCache dbm:/var/run/ssl-cache

# Localizao do arquivo de lock que o mdulo SSL utiliza para # sincronizao entre processos. O padro nenhum. SSLMutex file:/var/run/ssl-mutex

# Especifica o mtodo de embaralhamento de dados que ser utilizado # durante o inicio de uma seo SSL (startup) ou durante o processo # de conexo (connect). Podem ser especificados "builtin" ( muito rpido # pois consome poucos ciclos da CPU mas no gera tanta combinao aleatria), um # programa que gera nmeros aleatrios (com "exec") ou os dispositivos aleatrios # /dev/random e /dev/urandom (com "file"). Por padro nenhuma fonte # adicional de nmeros aleatrios usada. SSLRandomSeed startup builtin SSLRandomSeed connect builtin #SSLRandomSeed startup file:/dev/urandom 512 #SSLRandomSeed connect file:/dev/urandom 512 #SSLRandomSeed connect exec:/pub/bin/NumAleat

# Tipos MIME para download de certificados AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl

# Tempo mximo de permanncia dos objetos do cache acima. O valor padro # 300 segundos (5 minutos). SSLSessionCacheTimeout 300

# Verso do protocolo SSL que ser usada. Podem ser especificadas # SSLv2, SSLv3 TLSv1 ou all. O mais compatvel com os navegadores atuais # o "SSLv2". Por padro "all" usado. #SSLProtocol all #SSLProtocol -all SSLv3

# Registra detalhes sobre o trfego neste arquivo. Mensagens de erro # tambm so armazenadas no arquivo de registro padro do Apache SSLLog /var/log/apache/ssl-mod.log

# Nvel das mensagens de log registradas por SSLLog SSLLogLevel info

Algumas diretivas deste mdulo podem fazer parte tanto da configurao global do servidor como diretivas de acesso (Directory, Location, .htaccess, veja a opo "Context" na documentao do mod_ssl).

Guia foca Linux/Avanado/Apache/Uso de criptografia SSL

12.13.5 Autorizando acesso somente a conexes SSL


Existem casos que precisa restringir o uso de conexes normais e permitir somente conexes via SSL (como por exemplo, dentro da diretiva de acesso que controla seu acesso a uma pgina com listagem de clientes). A opo SSLRequereSSL usada para tal e deve ser usada dentro das diretivas de controle acesso: <Directory /var/www/secure/clientes> Options Indexes Order deny,allow Deny from evil.cracker.com SSLRequireSSL </Directory> A diretiva acima requer que sejam feitas conexes SSL (porta 443 - https:/ / ) para acesso ao diretrio /var/www/secure/clientes, qualquer conexo padro no criptografada (feita na porta 80) ser rejeitada com o erro 403. OBS: A diretiva SSLRequireSSL podia ser colocada entre as condicionais "IfModule mod_ssl.c" mas o servidor web permitiria conexes no criptografadas se por algum motivo esse mdulo no estivesse carregado. Na configurao acima, ocorrer um erro e impedir o funcionamento do servidor web caso ocorra algum problema com o mod_ssl.

12.13.6 Iniciando o servidor Web com suporte a SSL


Verifique se a configurao do Apache est ok com apache -t. Caso positivo, reinicie o servidor usando um dos mtodos descritos em [#s-s-apache-rodando Iniciando o servidor/reiniciando/recarregando a configurao, Seo 12.1.9]. O servidor web lhe pedir a FraseSenha para descriptografar a chave privada SSL (esta senha foi escolhida durante o processo de criao do certificado). Esta senha garante uma segurana adicional caso a chave privada do servidor seja copiada de alguma forma. Somente quem tem conhecimento da FraseSenha poder iniciar o servidor com suporte a transferncia segura de dados. Verifique se o virtual host est servindo as requisies na porta 443 com apache -S. O nico mtodo para fazer o servidor web evitar de pedir a senha para descriptografar a chave privada colocando uma senha em branco. Isto s recomendado em ambientes seguros e o diretrio que contm a chave privada dever ter somente permisses para o dono/grupo que executa o servidor Web. Qualquer outra permisso poder por em risco a segurana da instalao caso a chave privada seja roubada. Depois disso, execute o comando: # entre no diretrio que contm a chave privada cd /etc/apache/ssl.key # renomeie a chave privada para outro nome ren server.key server.key-Csenha openssl rsa -in server.key-Csenha -out server.key Digite a senha quando pedido. A chave original (com senha) estar gravada no arquivo server.key-Csenha e poder ser restaurada se necessrio. Reinicie o servidor Apache, desta vez ele no pedir a senha. OBS1: Tire uma cpia de segurana da chave privada original antes de executar esta operao. OBS2: No se esquea de ajustar as permisses de acesso no diretrio /etc/apache/ssl.key caso no utilize senha para proteger seu certificado digital. [[|Apache/Uso de criptografia SSL]]

Fontes e Editores da Pgina

Fontes e Editores da Pgina


Guia foca Linux/Avanado/Apache/Uso de criptografia SSL Fonte: http://pt.wikibooks.org/w/index.php?oldid=179713 Contribuidores: Raylton P. Sousa

Licena
Creative Commons Attribution-Share Alike 3.0 Unported http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/