Apache + SSL + Nenhuma mensagem de erro de certificado no IE
O foco principal do artigo é fazer um "overview" sobre a integração Apache + OpenSSL + MS IE. Acredito que seja de grande utilidade para quem não pode pagar um determinado valor para autoridades certificadoras. Free your mind!
Apache2 + OpenSSL - Nenhuma mensagem de erro de certificado no IE
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...):
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
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:
Vamos abrir o arquivo /etc/apache2/ports.conf e adicionar as linhas:
# vim /etc/apache2/ports.conf
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
Agora vamos reiniciar o Apache:
# /etc/init.d/apache2 restart
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
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>
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>
<HEAD>
<TITLE> Site do PATATI</TITLE>
</HEAD>
<BODY>
PATATI's site OK...
</BODY>
</HTML>
Agora vamos reiniciar o Apache:
# /etc/init.d/apache2 restart