Ola, toda vez que abro a minha aplicação de API em um navegador usando spring boot, redireciona para o https e dar erro de ERR_SSL_PROTOCOL_ERROR, como realizar as configurações?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Ola, toda vez que abro a minha aplicação de API em um navegador usando spring boot, redireciona para o https e dar erro de ERR_SSL_PROTOCOL_ERROR, como realizar as configurações?
Olá Jackson! Tudo bem?
Esse erro ocorre porque o navegador está tentando acessar sua aplicação via HTTPS, mas seu servidor está configurado para responder apenas via HTTP. Para resolver esse problema, você pode configurar o Spring Boot para redirecionar todas as requisições HTTPS para HTTP ou configurar o servidor para suportar HTTPS.
OBS: a solução mais rápido é simplesmente alterar o endereço no seu navegador para ser acessado usando HTTP.
Aqui estão duas abordagens que você pode seguir:
Redirecionar HTTPS para HTTP: você pode criar uma configuração no Spring Boot para redirecionar todas as requisições HTTPS para HTTP. Adicione a seguinte classe ao seu projeto:
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class HttpsConfig {
@Bean
public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> webServerFactoryCustomizer() {
return factory -> factory.setRedirectContextRoot(true);
}
}
Configurar HTTPS no Spring Boot: se você preferir configurar o HTTPS no Spring Boot, você precisará de um certificado SSL. Para fins de desenvolvimento, você pode usar um certificado autoassinado. Aqui está um exemplo de como configurar o HTTPS no seu application.properties:
server.port=8443
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=changeit
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat
E você pode criar um keystore usando o comando keytool:
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore.p12 -validity 3650
Lembre-se de substituir changeit pela senha que você definir para o keystore.
Espero ter ajudado e bons estudos!