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/

Você também pode gostar