Skip to content

  • Home
  • Blog
  • Projetos
  • Contato

Como gerar um certificado SSL grátis para sua aplicação em Spring

dezembro 19, 2020 by jhonatan2760


Construir uma aplicação utilizando o framework Spring pode ser relativamente fácil, porém quando existe a necessidade de implantar a sua aplicação em uma VPS, por exemplo, pode se tornar uma tarefa árdua e muitas vezes extremamente complexa. Quando se trata de um projeto a nível de produção, geralmente utilizamos um certificado SSL para termos acesso ao HTTPS, e assim trafegarmos os nossos dados com segurança e garantirmos a privacidade dos usuários do sistema. Por muito tempo um certificado custava muito caro e era inacessível para pequenas empresas e pequenas startups.
Porém nasceu uma iniciativa que facilita esse processo, que é a https://letsencrypt.org/, e é com esse projeto da letsencrypt que iremos gerar o certificado da nossa aplicação, confira:

Para ativar o HTTPS em seu site, você precisa obter um certificado (um tipo de arquivo) provido por uma Autoridade Certificadora (AC). A Let’s Encrypt é uma AC. Para obter um certificado da Let’s Encrypt para o domínio do seu website você precisa demonstrar controle sobre o domínio. Com a Let’s Encrypt, você pode fazer isso usando um software que usa o protocolo ACME, que normalmente é executado no seu servidor web.

Vamos aprender como configurar nossa aplicação e começar a utilizar o SSL em nossas requisições, vamos partir do princípio que você tenha uma aplicação pronta e queira hospedar em alguma VPS, então segue nossa lista de requisitos mínimos para prosseguir:

  • Domínio válido ou sub-domínio
  • Acesso root ao servidor
  • Um projeto utilizando Spring
  • Um pouco de paciência

Domínio ou Subdomínio válido

O DNS do seu domínio ou subdomínio do tipo A devem estar obrigatóriamente apontando para o IP da sua VPS, caso isso não esteja configurado, não será possível gerar um certificado válido.

 

Segunda parte:

Acesso root ao servidor

Vamos dividir essa parte em pequenas etapas.
Etapa 1 — Instalando o Certbot

Vamos atualizar os repositórios:
sudo add-apt-repository ppa:certbot/certbot
Em seguida:
sudo apt-get update
E por fim:
sudo apt-get install certbot

Etapa 2 — Executando o Certbot

O Certbot precisa responder a um desafio criptográfico lançado pela API Let’s Encrypt para provar que controlamos nosso domínio.
Ele usa as portas 80 (HTTP) ou 443 (HTTPS) para fazer isso. Certifique-se que seu domínio está apontando para o IP da sua VPS.

Substitua example.com pelo seu domínio

sudo certbot certonly --standalone --preferred-challenges http -d example.com

Ao executar o comando, você será solicitado a inserir um endereço de e-mail e concordar com os termos de serviço.
Depois de fazer isso, você verá uma mensagem informando que o processo foi bem-sucedido e onde seus certificados estão armazenados.

Segunda parte:

Configurando a aplicação

Parabéns, seu certificado já foi gerado! Agora iremos configurar para que o servidor o encontre em sua aplicação utilizando Spring Boot consiga utilizar o certificado, os certificados foram gerados aqui:

sudo ls /etc/letsencrypt/live/seudominio.com.br

Acessando esse diretório você encontrará:

Output: cert.pem chain.pem fullchain.pem privkey.pem README

Porém o Spring espera que tenhamos uma chave do tipo PKCS12, isso significa que você
deve converter a chave, para isso digite o seguinte comando:

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name tomcat -CAfile chain.pem -caname root

O arquivo keystore.p12 com PKCS12 será gerado em /etc/letsencrypt/live/seudominio.com.br

Agora em sua aplicação, adicione o arquivo keystore.p12 (ou deixe o caminho onde o arquivo está localizado no servidor)
*Eu particularmente deixo o certificado dentro da pasta resources, então fica basicamente assim:

server.port=443
security.require-ssl=true
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat

Pronto, agora é só dar start em sua aplicação que ao chamar sua API ela estará utilizando uma
conexão segura SSL.

Post Views: 33

Post navigation

Previous Post:

Arduino vs Dinossauro do Google Chrome

Posts recentes

  • Como gerar um certificado SSL grátis para sua aplicação em Spring
  • Arduino vs Dinossauro do Google Chrome
  • Comprei uma impressora 3D
  • Comentários liberados
  • Segunda reunião da comunidade JUG do Peru

Arquivos

  • dezembro 2020
  • junho 2020
  • maio 2020
  • março 2020
  • dezembro 2019
  • novembro 2019
  • agosto 2019
  • junho 2019
  • março 2019
  • novembro 2018
  • agosto 2018
  • julho 2018
  • março 2018
  • fevereiro 2018
  • janeiro 2018
  • dezembro 2017
  • novembro 2017
  • outubro 2017
  • agosto 2017
  • abril 2017
  • novembro 2016
  • junho 2015
  • fevereiro 2015
  • janeiro 2015
  • novembro 2014
  • setembro 2014
  • agosto 2014
  • julho 2014
  • junho 2014
  • maio 2014
  • abril 2014
  • março 2014
  • fevereiro 2014
  • janeiro 2014
  • dezembro 2013
  • novembro 2013
  • outubro 2013

Categorias

  • 3D printter
  • ALREADY
  • Ame Digital
  • ANGULAR 4+ ROLE BASED
  • ANGULAR 5
  • ANGULAR ROLE BASED
  • Arduino
  • Consulta Operadora
  • Crawler
  • Data Science
  • DIRECTIVE ANGULAR
  • español
  • HTTPS
  • Impressora 3D
  • iOS
  • iOT
  • JAVA
  • JERSEY
  • Jsoup
  • Meetup
  • Pandas
  • Python
  • R
  • REQUEST JERSEY
  • scraping
  • SECURITY CONTEXT
  • Spanish
  • Spring
  • Spring Webflux
  • Swift
  • Talkings
  • Technology
  • Uncategorized
  • Webflux
2018 - Jhonatan S. Souza