Configuração do SSL no Apache

A base para se utilizar esse tipo de serviço seria a facilidade e agilidade de ser implementado, sem maiores problemas na hora de executar a aplicação ou comunicação sem esquecer do fator e característica primordial do HTTPS: a segurança.

Apache com SSL, sua aplicação é conhecida como um servidor web capaz de fornecer por padrão criptografia baseada no protocolo SSL, utilizando o OpenSSL e SSLeay. A licença é BSD-Style e pode ser utilizada para fins comerciais e não comerciais.

Esse sistema foi criado pelo desenvolvedor Ben Laury, participante direto dos projetos Apache e OpenSSL.

SSL

Esse protocolo suporta uma variedade de diferentes algoritmos criptográficos, ou ciphers, para uso em operações de autenticação e do cliente, transmissão de certificados e estabelecimento de conexões.

Apache2

Como já sabemos, o Apache2 é um servidor web que quando combinado com o protocolo SSL se torna mais confiável pela questão da segurança de criptografia utilizada pelo protocolo.

HTTPS

É um protocolo ou conjunto de regras e códigos com uma camada de segurança que torna a navegação na internet mais segura, diferente do HTTP, que não dispõe do mesmo nível de segurança a navegação.

O HTTPS serve para que se estabeleça um dialogo entre os navegadores e os servidores da seguinte forma: os navegadores mandam mensagens para os servidores e as mesmas são encriptografadas, ou seja, embaralhadas de forma que somente os destinatários decifrem o seu conteúdo, com isso se agrega mais segurança entre a comunicação cliente servidor.

Pré-requisitos:

  • Conexão com internet;
  • Distribuição Ubuntu Linux (este tutorial foi validado no Ubuntu Desktop 7.10);
  • Editor de texto (neste tutorial foi utilizado pico).

1° Passo:

É necessário que o usuário efetue o logon com o login de administrador, o “root”. Para configurar o uso do proxy, é preciso acrescentar as linhas no arquivo /etc/profile, usando o pico ficaria o seguinte comando:

# pico /etc/profile

Acrescentando as seguintes linhas com as devidas alterações do endereço ip e porta da rede:

http_proxy=”http://ip.do.servidor.proxy:porta”

ftp_proxy=”http://ip.do.servidor.proxy:porta” export http_proxy ftp_proxy

2° Passo:

É necessário fazer a atualização dos pacotes de instalações de serviços, o comando é o seguinte:

# apt-get update

3° Passo:

Feita essa atualização, será iniciada a instalação OpenSSL. O OpenSSL é uma implementação de código aberto dos protocolos SSL e TLS. A biblioteca implementa as funções básicas de criptografia e disponibiliza várias funções utilitárias. Para a instalação usamos o seguinte comando:

# apt-get install openssl

4° Passo:

Agora será instalado o Apache2 mais o complemento necessário para a ativação do SSL, o comando será o seguinte:

# apt-get install apache2 apache2.2-common

Se houver pedidos de confirmação durante este procedimento, o usuário deve confirmar com “s”. Em seguida será feita a habilitação do módulo SSL no Apache com o seguinte comando:

# a2enmod ssl

5° Passo:

O Apache2 com SSL funciona através de um certificado reconhecido na web. Para gerar o certificado (CSR) será necessário a criação de uma chave, essa chave deverá conter no mínimo 08 caracteres, a criptografia usada nessa chave é a DES3, essa chave ficará no arquivo server.key. De dentro do diretório onde ela ficará armazenada, o “/etc/ssl/private”, o usuário deve digitar o comando abaixo para criação da chave:

# openssl genrsa -des3 -out server.key 1024

6° Passo:

Com a chave criada é importante acrescentar informações. Após digitar o comando abaixo, ele pedirá a chave e para preencher alguns dados, são os dados que serão visualizados referentes ao criador do certificado:

# openssl req -new -key server.key -out server.csr

Toda vez que o usuário reiniciar o Apache2 ele pedirá a chave. Isso faz com que caso haja um restart por algum motivo, o serviço não suba pois dependerá da presença humana para a digitação. Os comandos abaixo fazem com que o Apache2 não peça a chave em caso de restart do serviço, ou seja, ele faz a autenticação automaticamente. O usuário deve entrar no diretório “/etc/ssl/private” e executar o comando abaixo:

# openssl rsa -in server.key -out server.key.insecure

Executado o comando acima, deverá feita a substituição do arquivo atual pelo criado. Antes desse passo o usuário deve fazer uma cópia de segurança do arquivo atual ou renomear o arquivo “server.key”. Com o comando abaixo será feita a renomeação e o arquivo permanecerá na mesma pasta:

# mv server.key server.bak

Após a renomeação do arquivo, será feita a renomeação do arquivo criado, que fará com que não seja mais pedida a chave quando houver restart do serviço. O comando será o seguinte:

# mv server.key.insecure server.key

7° Passo:

O certificado será criado com o comando abaixo:

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

8° Passo:

Será necessário efetuar a instalação da chave e do certificado anteriormente criados com os seguintes comandos:

# cp server.crt /etc/ssl/certs

# cp server.key /etc/ssl/privateNo comando para instalação do server.key vai dar uma mensagem, isso porque foi criado no próprio diretório onde ele seria instalado, se tivesse sido criado em outro diretório não haveria a mensagem.

9° Passo:

Agora serão efetuadas algumas alterações de configuração no Apache editando o arquivo /etc/apache2/sites-available/default. Usando o pico o comando será o seguinte:

# pico etc/apache2/sites-available/default

Dentro do arquivo, abaixo da linha “DocumentRoot /var/www/”, é necessário acrescentar as seguintes linhas:

SSLEngine on
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

10° Passo:

O HTTPS escuta sobre a porta de número 443. É necessário adicionar a linha abaixo ao /etc/apache2/ports.conf, se já não houver:

<IfModule mod_ssl.c>
   Listen 443
</IfModule>

11° Passo:

Depois de instalado o certificado será feito o reinício do Apache2. Se o usuário optou pela instalação com o pedido da chave criada no início do tutorial, a chave será pedida toda vez que houver reiniciar o serviço, mas se o usuário efetuou os passos para a autenticação automática, o Apache2 não pedirá a chave, o comando será o seguinte:

# /etc/init.d/apache2 restart

12° Passo:

Feitos todos os passos do tutorial será feito um teste prático, o usuário deve criar uma pasta chamada “teste” dentro do “/var/www/”, o comando para criar é:

# mkdir /var/www/nome_pasta

Em seguida deve-se editar o arquivo /etc/apache2/sites-available/default com um editor de texto, usando o pico ficará:

# pico /etc/apache2/sites-available/default

Dentro do arquivo o usuário deve alterar as linhas que possuam “/var/www/” para “/var/www/teste/” (só serão duas linhas), assim estará sendo indicando o caminho para a pasta da página inicial.

Dentro da pasta “/var/www/teste/” deve-se criar o arquivo “index.html”. Para criar o arquivo dentro da pasta teste o usuário deve digitar:

# pico index.html

Inserir os códigos abaixo, depois salvar e sair:

<HTML>
<HEAD> <TITLE> Teste do Apache2 com SSL</TITLE></HEAD>
<BODY> teste efetuado com sucesso...</BODY>
</HTML>

Em seguida, no browser, para testar o endereço será o seguinte:

https://localhost/teste/

Será pedido para aceitar o certificado, pois o certificado criado no tutorial não será reconhecido automaticamente pelo browser como seguro. Para haver esse reconhecimento o criador da chave deve contratar uma autoridade certificadora para gerar o certificado a partir da chave gerada. Eessa autoridade de certificação é uma empresa autorizada a emitir, renovar e cancelar certificados digitais após verificar a identidade e a legitimidade da parte solicitante através de uma autoridade de registro. A principal autoridade de certificação é a VeriSign.

Referências

HTTPD – Apache2 Web Server, disponível em:https://help.ubuntu.com/7.10/server/C/httpd.html#https-configuration

Acessado em 10/11/08Certificados Digitais, disponível em:

http://www.speedhost.com.br/certificado-digital-ssl/faqs/index.phpAcessado em 10/11/08

Artigo escrito por Roberto Santos, Marcelo Gordiano e Elpidio Neri.

You can leave a response, or trackback from your own site.

Leave a Reply

Powered by WordPress | Find Low APR Credit Cards at BestInCreditCards.com | Thanks to iApplyForCreditCards.com, RPG Soundtracks and Transfer of Equity
SEO Powered by Platinum SEO from Techblissonline