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!

[ Hits: 37.230 ]

Por: Eduardo em 05/03/2010


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...):
  • 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

    Próxima página

Páginas do artigo
   1. Apache2 + OpenSSL - Nenhuma mensagem de erro de certificado no IE
   2. Customização e retirada da mensagem chata do MS IE
Outros artigos deste autor

Ambientes mistos e agora?

Leitura recomendada

Transações Financeiras (Warsaw vs User Agent Overrider) - Itaú Bankline 30 horas

Montando um roteador com o floppyFW

Instalação do GNS3 no Ubuntu 10.10 e derivados

Dicionário no Firefox

Certificação Digital no Linux - Apache2

  
Comentários
[1] Comentário enviado por xunil2000 em 05/03/2010 - 07:58h

Valeu anonymous! Estava procurando uma solução dessa há tempo. Já favoritei!

[2] Comentário enviado por grandmaster em 05/03/2010 - 15:27h

Rápida e simples. Boa dica.
---
Renato de Castro Henriques
ITILv3 Foundation Certified
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br


[3] Comentário enviado por Lithium em 06/03/2010 - 10:56h

Otimo Artigo parabéns!!!
Caiu como uma luva aqui =D

Vamos lá fiz tudo conforme descrito, e estou recebendo esta mensagem... o que pode ser ?´

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
Hint: https://mailserver.dominio.com.br:80/

Só acessa utilizando o HTTPS... felizmente o serviço funciona normalmente mais queria resolver esta mensagem.
alguem tem aguma dica ?



[4] Comentário enviado por anonymous em 06/03/2010 - 13:04h

Inicialmente quero agradecer à todos pelos comentários.
So let's go!!!
@Lithium Não sei se entendi direito a sua dúvida. No entanto, acredito que a configuração abaixo resolva seu problema.
Edite o arquivo /etc/apache2/sites-available/default e adicione as seguintes linhas:
<VirtualHost *:80>
ServerName patati
DocumentRoot /var/www/site
</VirtualHost>

#Com a citação acima o site vai responder tanto pela 80 quanto pela 443.

Se você quiser fazer um redirecionamento é só você editar o mesmo arquivo (/etc/apache2/sites-available/default). No entanto, deve incluir as seguintes linhas

<VirtualHost *:80>
ServerName patati
DocumentRoot /var/www/site
RedirectPermanent / https://patati
UseCanonicalName Off
</VirtualHost>


#Salve o arquivo e reinicie o apache: /etc/init.d/apache2 restart

#No meu caso fiz referência ao patati, pois foi esse endereço que coloquei para o meu site.
#Esse configuração vai fazer com que o site responda tanto pela 80 quanto pela 443
Espero ter ajudado!

[5] Comentário enviado por stremer em 07/03/2010 - 01:01h

Amigo é possivel criar um executavel windows (win32) que automatiza a tarefa de instalação de certificado (tanto no IE quanto no firefox).
Já fiz isso algumas vezes... se possivel coloco o código (precisarei localizar), mas quem quiser é só procurar as apis para isto...
bom artigo

[6] Comentário enviado por Lavinas em 07/03/2010 - 15:07h

Otimo Artigo.

Http://www.mlcarvalhoinformatica.com.br

[7] Comentário enviado por anonymous em 12/03/2010 - 14:02h

João,
Vou pesquisar pela solução exposta por você.
Obrigado!

[8] Comentário enviado por rickps em 25/07/2013 - 11:08h

Me ajudou muito, valeu pela força !

[9] Comentário enviado por bikikis em 31/10/2014 - 16:07h

Te amo cara...
Você não faz ideia de como você me ajudou...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts