Precisei fazer um trabalho sobre Certificados Digitais para a faculdade e quis mostrar na prática. Para isso, pensei em usar Open SSL.
OpenSSL é uma implementação das funções básicas de criptografia dos protocolos SSL e TLS. É escrita em C e pode ser usado em praticamente todos os sistemas operacionais.
O que ele permite, basicamente? Usar o famoso https para abrir uma página segura!
Testei o procedimento abaixo no Apache2 em Ubuntu 10.04 e Ubuntu 12.04 como localhost e funcionou.
Primeiro, você deve ter instalado o servidor Apache na sua máquina. Acessando aqui você lê meu tutorial para instalar um LAMP Server completo em localhost.
Depois de instalar o LAMP Server, abra o navegador e digite http://localhost. Você verá uma página inicial que o Apache instala para testar a configuração inicial. Será importante para você perceber como é o comportamento com e sem https.
Vamos à instalação e configuração do OpenSSL:
Atenção: a responsabilidade por qualquer ação feita em seu sistema é só sua! Na dúvida, não faça nada.
Importante: rode tudo em um terminal como root!
01) a2enmod ssl
02) /etc/init.d/apache2 restart
03) mkdir /etc/apache2/ssl
04) cd /etc/apache2/ssl
05) openssl genrsa -des3 -out server.key 1024
06) openssl req -new -key server.key -out server.csr
07) openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
08) chmod 0400 /etc/apache2/ssl/server.key
09) chmod 0400 /etc/apache2/ssl/server.crt
10) cp /etc/apache2/ssl/server.key server.key.orig
11) openssl rsa -in server.key.orig -out server.key
12) chmod 400 /etc/apache2/ssl/*
13) vim /etc/apache2/sites-available/default-ssl:
Logo abaixo de SSLEngine on você encontrará as linhas abaixo:
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
Comente-as (adicionando # no início da linha comos as outras linhas de comentário que estarão logo acima) e adicione as linhas abaixo:
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
Salve o arquivo.
14) cp /etc/apache2/sites-available/default-ssl /etc/apache2/httpd.conf
15) /etc/init.d/apache2 restart
Em seguida, abra o navegador e digite https://localhost. Se tudo deu certo, você verá a tela abaixo (esta é do Firefox, cada navegador tem uma aparência diferente).
Você já deve ter visto esta tela quando entrou em sites seguros cuja CA (Certification Authority) não estava listada no navegador. Basta adicionar o site como exceção e você verá a página index.html igual à que viu quando acabara de instalar o Apache.
Sugiro que antes de adicionar a exceção, explore as opções para visualizar o certificado e as informações que você configurou na instalação do Open SSL.
Este é um assunto extenso e interessante e de maneira alguma cobri todas as possibilidades neste tutorial mas já é suficiente para você ter uma idéia.
É isso aí, abraço.