SpringBoot 2.0配置HTTPS,并实现HTTP访问自动转HTTPS访问,或同时启用http 与 https

本文中使用Spring boot 2.0.4 版本

一、配置Http 与 Https 同时启用

第一步修改application.yml 文件


port:443

  ssl:

key-store: 
  classpath:viviendg.com.jks

  key-password: ******

  key-store-password: ******

http:

  port: 80

第二步增加配置Bean 同时启用http与https


//80 与443端口同时启用

@Value("${http.port}")

private Integer port;

@Bean

public ServletWebServerFactory servletContainer() {

TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();

// 添加http

tomcat.addAdditionalTomcatConnectors(createStandardConnector());

return tomcat;

}

// 配置http

private Connector createStandardConnector() {

Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");

connector.setPort(port);

return connector;

}

二 HTTP 跳转 HTTPS

除了正常在application.yml中配置ssl相关信息还需要增加Bean配置。另外需要注意以下Bean配置只适用于spring boot 2.0 及以上版本。1.5版本请参考链接


/**

* 访问80端口跳转433

* */

@Bean

public Connectorconnector(){

Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");

    connector.setScheme("http");

    connector.setPort(80);

    connector.setSecure(false);

    connector.setRedirectPort(443);

    return connector;

}

@Bean

public TomcatServletWebServerFactorytomcatServletWebServerFactory(Connector connector){

TomcatServletWebServerFactory tomcat=new TomcatServletWebServerFactory(){

@Override

        protected void postProcessContext(Context context) {

SecurityConstraint securityConstraint=new SecurityConstraint();

            securityConstraint.setUserConstraint("CONFIDENTIAL");

            SecurityCollection collection=new SecurityCollection();

            collection.addPattern("/*");

            securityConstraint.addCollection(collection);

            context.addConstraint(securityConstraint);

        }

};

    tomcat.addAdditionalTomcatConnectors(connector);

    return tomcat;

}

以上两种方式个人更倾向使用第二种即http跳转https。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容