Java 如何在命令行上启动Spring引导时自动重定向到https

Java 如何在命令行上启动Spring引导时自动重定向到https,java,tomcat,spring-mvc,ssl,spring-boot,Java,Tomcat,Spring Mvc,Ssl,Spring Boot,我有与EC2相同的问题,但不是在EC2上下文中,只是简单地从命令行启动spring引导应用程序。通过以下代码,我成功地使用HTTPS运行了我的应用程序: 现在我可以在https://localhost:8443/ 我想要http://localhost:8443将重定向到https。现在Chrome只显示“未接收到数据”,这对用户不太友好。AFAIK您不能这样做:如果Tomcat正在侦听端口8443上的HTTPS,它就不能侦听同一端口上的HTTP。您链接到的另一个问题与此不同,因为它与特定端口无

我有与EC2相同的问题,但不是在EC2上下文中,只是简单地从命令行启动spring引导应用程序。通过以下代码,我成功地使用HTTPS运行了我的应用程序:

现在我可以在
https://localhost:8443/


我想要
http://localhost:8443
将重定向到https。现在Chrome只显示“未接收到数据”,这对用户不太友好。

AFAIK您不能这样做:如果Tomcat正在侦听端口8443上的HTTPS,它就不能侦听同一端口上的HTTP。您链接到的另一个问题与此不同,因为它与特定端口无关。

谢谢。事实似乎确实如此:
@Profile( "security" )
@Configuration
public class SecurityConfiguration
{
    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer( @Value("${keystore.file}") Resource keystoreFile,
                                                                   @Value("${keystore.pass}") final String keystorePass ) throws IOException
    {
        final String absoluteKeystoreFile = keystoreFile.getFile().getAbsolutePath();

        return new EmbeddedServletContainerCustomizer()
        {
            @Override
            public void customize( ConfigurableEmbeddedServletContainer container )
            {
                TomcatEmbeddedServletContainerFactory tomcat = (TomcatEmbeddedServletContainerFactory)container;
                tomcat.addConnectorCustomizers( new TomcatConnectorCustomizer()
                {
                    @Override
                    public void customize( Connector connector )
                    {
                        connector.setPort( 8443 );
                        connector.setSecure( true );
                        connector.setScheme( "https" );

                        Http11NioProtocol proto = (Http11NioProtocol)connector.getProtocolHandler();
                        proto.setSSLEnabled( true );
                        proto.setKeystoreFile( absoluteKeystoreFile );
                        proto.setKeystorePass( keystorePass );
                        proto.setKeystoreType( "PKCS12" );
                        proto.setKeyAlias( "tomcat" );

                    }
                } );
            }
        };
    }
}