当前位置: 首页 > 知识库问答 >
问题:

如何在命令行启动Spring Boot后自动重定向到https

臧梓
2023-03-14

我有和这个问题一样的问题,但不是在EC2环境中,只是简单地从命令行启动我的spring boot应用程序。我按照下面这个例子中的代码,成功地让我的应用程序在HTTPS上运行:

@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" );

                    }
                } );
            }
        };
    }
}

现在我可以在上访问我的应用程序https://localhost:8443/

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

共有1个答案

那利
2023-03-14

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

 类似资料:
  • 问题内容: 在shell中,您可以执行重定向 等操作,但是启动程序后如何呢? 这就是我问这个问题的方式,在我的终端后台运行的程序不断输出令人讨厌的文本。这是一个重要的过程,因此我必须打开另一个shell以避免输入文本。我希望能够进行重定向或其他重定向,以便可以继续在同一外壳中工作。 问题答案: 除非关闭并重新打开您的tty(即注销并重新登录,这可能还会终止该过程中的某些后台进程),否则您只剩下一个

  • 应用服务启动可以在多个地方进行调整,以下介绍两种方案,Dockerfile 和 平台详情页调整 Dockerfile CMD启动方式 看一下简单的例子: FROM hub.kpaas.nsini.com/app/hello:v0.0.3 CMD ["/go/bin/hello"] 启动命令写在CMD这个后面,如果后面有多个参数可以以逗号隔开例如: CMD ["static-web", "-pa

  • 问题内容: 我想知道是否有一种方法可以像使用bash的.bash_profile或.profile脚本那样在进入python shell时自动运行命令。我想自动导入一些模块,这样我每次跳入shell时都不必键入整个shebang。 谢谢, 问题答案: 是的,你可以使用环境变量来做到这一点所概述这里

  • 我将vault与我的Spring启动应用程序集成在一起,我面临着一个非常奇怪的问题。当我运行我的应用程序使用 运行成功但是当我使用 我得到以下例外。 有谁能给我简单描述一下两者的区别吗?非常感谢。

  • 问题内容: 我准备了一个docker-compose文件来部署带有数据库的容器: 没关系。但是现在我需要创建一个数据库并建立其结构。我需要执行一些sql命令。为了检查我是否能够做到这一点,我将其添加到服务中: 但是我遇到以下错误: 我感觉命令是在Sql Server实例启动之前执行的。我该如何解决?Sql Server启动后如何执行一些sql? 问题答案: 问题是在容器中仅执行一个命令。当您在其中

  • 本文向大家介绍SpringBoot java-jar命令行启动原理解析,包括了SpringBoot java-jar命令行启动原理解析的使用技巧和注意事项,需要的朋友参考一下 在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,而不需要另外配置一个Web Server。那么spring boot如何启动的呢?今天我们就来