1
resposta

[Dúvida] erro de protocolo https com http nos navegadores

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?

1 resposta

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:

  1. 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);
        }
    }
    
  2. 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!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.