Páginas filhas
  • Configuração Certificado SSL para projetos Spring Boot e Keycloak

Objetivo

Este documento tem por objeto demonstrar as configurações necessárias para habilitar o certificado SSL (https) em projetos utilizando Spring Boot e também Keylock, a partir de um arquivo de certificado auto-assinado. Como exemplo será utilizado o projeto do TOTVS Agro LGPD.


O Certificado SSL

O certificado SSL (Secure Sockets Layer) é um certificado digital utilizado para autenticar a identidade de um site, possibilitando a utilização de uma conexão criptografada entre um servidor Web e um navegador, mantendo a privacidade e a segurança das informações.

 

Converter certificado para o formato p12 (pkcs12)

Para a configuração do certificado SSL em projetos JAVA, o formato padrão recomendado a partir do Java 9 é o pkcs12. Caso possua um certificado JKS, é possível convertê-lo para o formato pkcs12 através do seguinte comando:

keytool -importkeystore -srckeystore seu_certificado.jks -destkeystore seu_certificado.p12 -deststoretype pkcs12

 

Configurando SSL no projeto Spring Boot

Em posse do arquivo do certificado, copie-o para o diretório raiz do projeto para seguirmos com a etapa de configuração do SSL. A seguir serão apresentados os parâmetros necessários para a configuração do certificado em projetos utilizando Spring Boot via arquivo application.yml e também via passagem de argumentos para a JVM.

 

Configuração via .yml



server:

    ssl:

        key-store: classpath:seu_certificado.p12

        key-store-password: password

        key-store-type: pkcs12

        key-alias: springboot

        key-password: password

    port: 8443




Argumentos para JVM


-Dserver.ssl.keystore=classpath:seu_certificado.p12

-Dserver.ssl.keystore-password=password

-Dserver.ssl.keystore-type=pkcs12

-Dserver.ssl.key-alias=springboot

-Dserver.ssl.key-password=password

-Dserver.port=8443


 

Abaixo segue o detalhamento dos parâmetros..

  • server.port: Porta na qual o servidor estará escutando
  • server.ssl.keystore: Caminho para o armazenamento de chaves que contém o certificado SSL
  • server.ssl.keystore-password: Senha para acessar o armazenamento de chaves
  • server.ssl.keystore-type: Tipo do certificado.
  • server.ssl.key-alias: Apelido que identifica a chave no armazenamento de chaves
  • server.ssl.key-password: senha usada para acessar a chave no armazenamento de chaves.


Configurando SSL no Keycloak

A seguir serão apresentados os parâmetros necessários para a configuração do certificado SSL para a ferramenta Keycloak, via arquivo application.yml e também via passagem de argumentos para a JVM.


Configuração via .yml



keycloak:

    auth-server-url: https://SEU_DNS:8443/auth

    ssl-required: all

    confidential-port: 8443



 

Argumentos para JVM


-Dkeycloak.auth-server-url=https://SEU_DNS:8443/auth

-Dkeycloak.ssl-required=all

-Dkeycloak.confidential-port=8443



URIs de Redirecionamento

Neste passo iremos configurar as URIs de Redirecionamento do Keycloak, para o protocolo HTTPS, para tanto, basta acessar o Administration Console da ferramenta Keycloak, através do seguinte endereço: endereço da máquina + nova porta + /auth, exemplo: https://192.168.0.1:8443/auth 

Após acessar a tela inicial, clicar Administration Console, e realizar o login com usuário administrador. Em seguida, acessar o menu “Clients”, e selecionar a opção “Lgpd-api”.

Nesta tela devemos atualizar as informações relacionadas às URIs de Redirecionamento, com base nos valores informados na configuração do SSL no keycloak.

  • Sem rótulos