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.
RSS Feed
Twitter
Posted in
Tags: 