Senhores,
Depois de algumas dicas resolvi publicar esse artigo que acredito que seja de grande utilidade para quem deseja elaborar um ambiente seguro em uma intranet e não quer pagar um determinado valor para empresas certificadoras de certificado digital.
Citações que considero importantes (a quem interessar possa...):
- Para conhecimento de todos utilizei como exemplo o IE porque esse artigo teve como base uma situação real vivida por mim quando trabalhava em uma empresa cujo recursos e ideias eram impedidos de se colocar em prática. Agora eu posso!
- Todo o procedimento foi executado no Debian Squeeze Linux.
Introdução
O que é SSL?
Resumo: É uma tecnologia utilizada para codificar dados entre um computador de usuário e um website. OpenSSL é baseado na excelente biblioteca SSLeay desenvolvida por Eric A. Young e Tim J. Hudson.
O que é Apache?
Resumo: Servidor web mais utilizado no mundo. Surgiu no National Center of Supercomputing Applications (NCSA) através do trabalho de Rob McCool.
O que é Linux?
Linux é o PODER!!!!!!!
http://pt.wikipedia.org/wiki/Linux
Instalação e configuração
Vamos lá... Primeiro passo é editar o arquivo sources.list conforme já publiquei aqui no site:
Agora vamos à instalação do Apache + OpenSSL. Para instalação do OpenSSL basta digitar:
# apt-get install openssl
E para instalação do Apache basta digitar:
# apt-get install apache2 apache2.2-common
Lembrete: Caso haja algum pedido de confirmação basta confirmar.
Agora iremos habilitar o módulo SSL no Apache:
# a2enmod ssl
Para criamos o CSR cujo o tamanho será de 2048 basta digitarmos o comando a seguir. No meu caso coloquei o nome "patati", mas vocês podem adaptar conforme necessidade e ou comodidade. Após isso será solicitado a criação de uma senha para certificado:
# openssl genrsa -des3 -out patati.key 2048
Devemos digitar o comando abaixo para customização completa da chave, pois, após o comando ser executado serão solicitadas informações, tais como: Country Name, State or Province Name, Locality Name, Organization Name, Organizational Unit Name, Common Name, Email Address e alguns atributos extras.
# openssl req -new -key patati.key -out patati.csr
Os comandos abaixo otimizam a serviço "apache", pois fazem com que o serviço suba automaticamente sem a necessidade de uma intervenção humana.
# cd /etc/ssl/private
# openssl rsa -in patati.key -out patati.key.insecure
# mv patati.key.insecure patati.key
Agora vamos à criação do certificado com validade de 2 anos.
# openssl x509 -req -days 730 -in patati.csr -signkey patati.key -out patati.crt
Para instalar os certificados devemos digitar os comandos:
# cp patati.crt /etc/ssl/certs
# cp patati.key /etc/ssl/private
Vamos à customização SSL no Apache:
# vim /etc/apache2/sites-available/default
Abaixo da linha "DocumentRoot /var/www/", vamos acrescentar as seguintes linhas:
SSLEngine on
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile /etc/ssl/certs/patati.crt
SSLCertificateKeyFile /etc/ssl/private/patati.key
Vamos abrir o arquivo
/etc/apache2/ports.conf e adicionar as linhas:
# vim /etc/apache2/ports.conf
<IfModule mod_ssl.c>
Listen 443
</IfModule>
Antes de qualquer coisa vamos criar o site no Apache:
# mkdir /var/www/patatisite
# vim /etc/apache2/sites-available/default
Dentro do arquivo citado acima vamos alterar as linhas que possuam "/var/www/" para "/var/www/patatisite/".
Vamos criar o arquivo index.html:
# touch /var/www/teste/index.html
Após a criação do arquivo devemos inserir o código abaixo:
# vim /var/www/teste/index.html
<HTML>
<HEAD>
<TITLE> Site do PATATI</TITLE>
</HEAD>
<BODY>
PATATI's site OK...
</BODY>
</HTML>
Agora vamos reiniciar o Apache:
# /etc/init.d/apache2 restart