Desenvolvimento - ASP. NET
ASP.NET - Utilizando SSL (Secure Socket Layer)
Com esse artigo você conseguira incluir em seu site os mesmos recursos de segurança já usados nos sites de comercio eletrônico no que diz respeito a SSL...
por Ramon Durães
Introdução
Lendo os fóruns de asp.net tenho observado que existe muitas perguntas sobre como estabelecer um canal seguro de comunicação para efetuar transações com segurança na internet
sem expor informações criticas, como senhas e dados de cartão de credito. Com esse artigo você conseguira incluir em seu site os mesmos recursos de segurança já usados nos sites de comercio eletrônico no que diz respeito a SSL.
O que vem a ser realmente o SSL?
É um protocolo utilizado para garantir a segurança na comunicação entre o servidor web e o browser do cliente. Atualmente recomenda-se utilizar uma chave de 128 bits para garantir um alto poder de criptografia entre as informações enviadas do browser para o servidor e vice-versa. Ou seja toda comunicação estará codificada. Impedido que pessoas procurem obter esses dados por meios de
dumps!
Como saber se você está usando
SSL ?
Verifique se o cadeado do browser está fechado e se na url consta o
https:// . O acesso ao SSL utiliza porta 443 do servidor web.
Quando é o momento de se utilizar o
SSL?
Quando você ou seu cliente for trafegar com informações que são altamente restritas e não pode correr o risco de serem interceptadas por terceiros.
Qual referencia no servidor para associar ao
certificado ?
O certificado fica associado ao nome da maquina (CommonName), então para registrar o certificado você precisa definir qual é a url que vai utilizar.
www.seunome.com.br ou seguro.seunome.com.Br , então o certificado somente ficara valido nesse endereço.
O que é o CSR e como faço para
obter ?
CSR é a chave pública gerada pelo seu servidor que será encaminhada para uma empresa certificadora, que emite certificados digitais. Nos próximos passos demonstraremos como gerar a
CSR.
Como posso realizar algum teste com certificado sem ter que
pagar ?
Bem quase todos os fornecedores de certificados oferecem uma versão trial do certificado para que você possa instalar em seu servidor e testar a vontade.
Vamos agora ver passo a passo tudo que tem que ser feito para gerar um certificado e instalar no servidor.
Figura 01 - Propriedades do site web
Figura 02 - Criando novo certificado
Figura 03 - Inicio
Figura 04 - Para certificado de teste não marque essa opção, use chave de
512 bit
Figura 05 - Nome da Organização
Figura 06 - Entre com o nome completo do seu site, ou no meu caso tou usando nome da minha maquina
Figura 07 - Não use acentos nem nomes "abreviados"
Figura 08 - Nome do arquivo CSR
Figura 09 – CSR GERADA ( C:\certreq.txt )
Pronto! Você acabou de gerar sua CSR, veja o conteúdo do arquivo conforme modelo:
Arquivo:> c:\certreq.txt
-----BEGIN NEW CERTIFICATE REQUEST-----
MIICtjCCAmACAQAwYDEOMAwGA1UEAxMFcmFtb24xDjAMBgNVBAsTBU11dGV4MQ4w
DAYDVQQKEwVNdXRleDERMA8GA1UEBxMIU2FsdmFkb3IxDjAMBgNVBAgTBUJhaGlh
MQswCQYDVQQGEwJCUjBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDe7fuuhWIYhyv5
goDWy1oDI4xx2P85/Qttb5xU7aFvPYF7XSCY6wTxYQ8AeYiGHZfoBUJAlqZnqUGY
-----END NEW CERTIFICATE REQUEST-----
Agora você precisa acessar os fornecedores de certificados para solicitar seu certificado trial.
Para fins de exemplo vou utilizar o http://www.certsign.com.br como exemplo.
Obtendo certificado SSL TRIAL
Nós utilizaremos a url abaixo como modelo
https://digitalid.certisign.com.br/trial/trialserver/index.html
Figura 010 - Tela Inicial
Figura 011 - Inserindo CSR gerada anteriormente
Figura 012 - Confirme os dados e complete as informações requisitadas
Figura 13 - Tela final.
Como esse certificado é de teste você deve instalar um certificado adicional no navegador. Isso somente ocorrerá com certificado trial.
Figura 14 - Mensagem de instalação do certificado de teste.
Parabéns, feito esses passos você deve está recebendo por e-mail o certificado digital que precisa ser inserido no seu servidor conforme modelo abaixo:
-----BEGIN CERTIFICATE-----
MIIDajCCAxSgAwIBAgIQHe8qRLq8o/Ppgra85X7GRDANBgkqhkiG9w0BAQUFADCB
qTEWMBQGA1UEChMNVmVyaVNpZ24sIEluYzFHMEUGA1UECxM+d3d3LnZlcmlzaWdu
LmNvbS9yZXBvc2l0b3J5L1Rlc3RDUFMgSW5jb3JwLiBCeSBSZWYuIExpYWIuIExU
-----END CERTIFICATE-----
Agora voltaremos ao Servidor web para adicionar o certificado final.
Figura 15 – Processando solicitação
Observe que o assiste pergunta se quer processar uma solicitação pendente, seria aquela CSR que geramos.
Copie o conteúdo da chave que veio no email e salve em um arquivo texto, será solicitado na próxima tela.
Depois de informar a localização de seu arquivo com o certificado será mostrada a tela abaixo:
Figura 16 – Tela final, confirmando certificado.
Testando seu certificado
Abra agora seu browser na url que você registrou o certificado, neste exemplo minha url será:
https://ramon
Como posso obrigar a somente acessar minha pagina via certificado?
Você deve configurar a pasta de sua aplicação, segurança da pasta, editar, e marcar a opção requer canal seguro (SSL) conforme
Figura 17
Figura 17 – Configurando para aplicação somente ser acessada via
SSL
Após configurar que sua aplicação necessita de um canal seguro, tipo SSL, o usuário que tentar acessar sem usar o https, vai ter a seguinte mensagem mostrada na figura 18
Figura 18 – Mensagem de erro por acessar uma aplicação de acesso restrito via
SSL
Lembre sempre que o acesso normal do usuário é via porta tcp 80, e que o acesso do usuário usando
SSL é via porta 443. Portanto caso possua firewall o mesmo deve prever acesso a essas duas portas.
Posso fazer alguma coisa para que o usuário já acesse minha pagina segura sem precisar digitar o https?
Sim, você pode colocar uma pagina padrão que redireciona para a pagina de acesso já usando https, conforme exemplo abaixo:
o usuário digita: http://ramon (Porta
80)
e a pagina padrão redireciona ele para https://ramon/aplicacao
(Porta
443)
Exemplo da pagina default.aspx
Links para fornecedores de SSL e projetos relacionados.
http://www.certisign.com.br
http://www.instantSSL.com
http://www.thawte.com
http://www.geotrust.com
http://www.verisign.com e
o
http://www.openSSL.org , projeto de
SSL gratuito.
Finalizando
Em suma é muito importante o uso do SSL para oferecer segurança na troca de informações. E nesse passo a passo, você observou como é simples utilizar o
SSL em conjunto com servidor Microsoft IIS.