Implementando SSL/TLS ou https

Implementando SSL/TLS ou https. Para quem recebeu a tarefa de implementar conexão segura em projeto web e não tem a miníma ideia de como e por onde começar este post irá te mostrar  os passos a seguir para a implementação dessa rotina que vem sendo cada vez mais comum e necessária em projetos de sistemas, site e/ou blogs, principalmente em e-commerce. Quando me deparo com algum site de vendas e o mesmo não está em SSL já caio fora no mesmo instante.  Um exemplo de conexão segura é  acessando o Google verá o seguinte desenho de cadeado na url, confira na imagem abaixo:

ssl_google

A imagem do cadeado sempre vem seguida pelo protocolo https indicando que  está em acesso seguro ao site web, para esse tipo de acesso a sua aplicação deve rodar em um servidor com certificado que vamos falar mais adiante.

Como funciona? 

Uma conexão utilizando SSL é sempre iniciada pelo cliente. Quando um usuário solicita a conexão navegador web (Firefox, Internet Explorer, Opera,
Chrome, etc.) solicita o recebimento do Certificado Digital e verifica se:
– O certificado recebido é confiável.
– O certificado é válido.
– O certificado está relacionado com o site que o enviou.

Após tudo ser confirmado as informações entre navegador e servidor podem ser trocadas com segurança.

Duvídas

O lado do cliente terá autenticação? Não, apenas terá autenticação do lado do servidor usando a chamada chave privada (Certificado), com isso o navegador entende que a conexão é segura e criptografada, se tivesse necessidade de autenticação do lado do cliente, iria precisar da chamada chave pública que seria instalada no navegador do cliente para usar em conjunto com a chave privada do lado do servidor, ambas iriam conversar  e trocar informações antes do navegador libera-las ao usuário, esse tipo de configuração serve para projetos com segurança extrema.

Dados importantes

A fim de implementar SSL, um servidor web deve ter um certificado associado para cada interface externa (endereço ip). Um Certificado é tipicamente comprado de um conhecido Certificate Authority (CA), como a VeriSign, Thawte e a ComodoBR. Esses certificados podem ser verificados eletronicamente pela autoridade de certificação que irá atestar a autenticidade dos certificados que emite, para que os servidores web e navegadores validem o mesmo como autênticos.

Basicamente para que serve o certificado de autenticidade?

Por exemplo como que os navegadores, redes de internet protocolos de segurança e assim por diante irão saber que a sua aplicação é mesmo quem diz ser ou sendo uma aplicação confiável que não irá trazer risco para os usuários, e nesse momento que entra em ação os certificados SSL/TLS para https em conexão segura. Em link há detalhes sobre a chave de autorização o modo mais antigo usa chaves keystore e os métodos mais novos usam certificados assinados por entidades autorizadas, estes certificados estão em outros formatos como descrito no link. Esses certificados podem ser gerados na maquina que será instalado o servidor e após isso ser feito o pedido de autenticação para alguma Certificate Authority (CA), após isso será emitido o certificado autorizado para ser instalado no servidor.

Passos a seguir

O exemplo será demonstrado utilizando o recurso da ComodoBr.

Passo 1

Gerar a sua CSR (Certificate Signing Request), é gerada no seu servidor web onde seu site/aplicação será hospedado, tutorial aqui. Se for usar um servidor apache tomcat pode serguir este tutorial.

Passo 2

Após gerar a sua CSR deverá ser feito pedido de emissão do certificado, tutorial aqui.

Passo 3

Instalando no seu servidor

Caso venha utilizar um servidor apache tomcat siga este tutorial de instalação para certificado da ComodoBr.

Documentação do connector tomcat 7 para aqui.

Documentação Tomcat para SSL/TLS ou Https em conexão segura aqui.

Demonstrando minha implementação inicial no projeto

Como meu objetivo é simplificar as coisas para abaixo demonstro a configuração inicial que já faz a aplicação responder em conexão segura.

Dentro do tomcat temos o arquivo server.xml neste faremos as seguintes modificações.

connector_tomcat

Fique atento para cada configuração e valores informados neste arquivo ele varia de acordo com o projeto e a arquitetura, mais detalhes pode conferir na documentação do servidor, note que nele é apontado o caminho do certificado que foi recebido da entidade certificadora e a senha do mesmo.
Feita a configuração do servidor vamos para a nossa aplicação web e vamos dizer para ela trabalhar com https, na sua aplicação vá até o arquivo web.xml
web_xml_config_https
Se está fazendo o uso do maravilho Spring Security que é o meu caso teremos mais uma configuração a seguir, no arquivo applicationContext-security.xml adicione a seguinte configuração:

https_spring_security

Agora está dizendo ao framework que trabalhe em https.

Pronto, a partir deste momento sua aplicação começa a responder em https e seu acesso não será mais por http://www.meusite.com.br e passa a ser https://www.meusite.com mostrando aquele cadeado de conexão segura.

Aprenda RESTful com Angular e Spring Frameworks
Angular 1.6 e Spring
Abra as portas para sua carreira de desenvolvedor web em Java com RESTful Spring e AngularJS.
648 alunosHoras do curso 40h Horas do curso certificado
Promoção R$ 100
1x de R$ 10,50
Arquitetura RESTful Spring Frameworks, BootStrap e Angular estão em alta no mercado nas empresas de desenvolvimento de software.
Spring Boot e Materialize sistema completo
Spring Boot e MDL
Neste curso iremos criar um sistema de contas à pagar e receber, fácil e rápido de se aprender.
290 alunosHoras do curso 20h Horas do curso certificado
Promoção R$ 40
4x de R$ 10,63
Spring Boot e Materialize. Neste curso iremos criar um sistema de contas à pagar e receber, onde utilizaremos um método fácil e rápido de se aprender com o mais famoso framework para aplicações Java o Spring Boot e junto com ele usaremos todo o poder do Materialize que é um framework front-end moderno e responsivo baseado em Material Design.


Acesse
Cursos e Projetos
Java
Acesse
Outros Cursos
PHP MySQL Android
Acesse
Encomende um Projeto
Feito pra Você
Acesse
Tire as Dúvidas On-line
Consultor
Acesse
Aulas de Java só suas
Encomende Agora
Acesse
Dividindo Conhecimento
Posts e Tutoriais
Acesse
Sites e Parceiros
Associados
Acesse
Conheça os curso gratuitos
Grátis

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Instrutor Java Quer se tornar aluno VIP? CLIQUE AQUI!
Instrutor Java

Alex Fernando Egidio
Autor, criador e fundador do Java Avançado Cursos TI. Atua no mercado como desenvolvedor e engenheiro de sistemas em Java é apaixonado por desenvolvimento web em Java e pela “mágica” que seus frameworks trazem para o dia a dia de nós desenvolvedores.
Com mais de 10 anos de experiência ajuda programadores do Brasil todo a se tornarem profissionais.