Neste artigo irei apresentar a configuração do Https, utilizando o Spring Boot com o servidor de aplicação undertow.
Configurando application.yml ou application.properties
Acesse seu arquivo de configuração application.yml do spring boot e insira o código abaixo
server:
port: 8443
http:
port: 8080
ssl:
enabled: true
key-store: caminho_completo_do_certificado/bootsecurity.p12
key-store-password: senha
keyStoreType: PKCS12
keyAlias: apelido
Criando bean de configuração
Agora vamos criar um bean para configurar o redirecionamento automático da porta 8080 para 8443 conforme configurado no application.yml.
Você pode inserir o código abaixo em uma classe de configuração ( @Configuration) separada ou pode inserir diretamente na sua classe de inicialização do spring boot.
@Value("${server.http.port}")
private int httpPort;
@Value("${server.port}")
private int httpsPort;
@Bean
public ServletWebServerFactory undertowWebServerFactory() {
UndertowServletWebServerFactory undertowServletWebServerFactory = new UndertowServletWebServerFactory();
undertowServletWebServerFactory.addBuilderCustomizers(builder -> {
builder.addHttpListener(httpPort, "0.0.0.0");
});
undertowServletWebServerFactory.addDeploymentInfoCustomizers(deploymentInfo -> {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.addWebResourceCollection(new WebResourceCollection().addUrlPattern("/*"));
securityConstraint.setTransportGuaranteeType(TransportGuaranteeType.CONFIDENTIAL);
securityConstraint.setEmptyRoleSemantic(SecurityInfo.EmptyRoleSemantic.PERMIT);
deploymentInfo.addSecurityConstraint(securityConstraint).setConfidentialPortManager(exchange -> httpsPort);
});
return undertowServletWebServerFactory;
}
Dúvidas?
Você tem outras dúvidas? Deixe seu feedback nos comentários abaixo. Bom, espero que essa dica tenha sido útil.