springboot开启https和http共存

网上的方法基本同一个类型,不是复制粘贴就是复制粘贴,虽然有用但却也是bug不断还没有详解,虽然我也有些不太懂那些配置的意思,但我说明一下这里踩得一个坑,那就是http重定向到https,这个会有bug而且经常出现302错误,而这个仅仅只是因为一个false
我只改了为了true并且没有重定向而是http和https双支持
因为本人感觉http重定向到https并没有什么用,还不如该是https就到https,该是http就到http
开启步骤如下:
ssl证书放于资源文件夹里,我这里用的是阿里的,里面有一个txt密码文本文件
application.yml

server:
  ssl:
    key-store: classpath:baby.kudesoft.cn.pfx
    key-store-password: zRfVXF17
    key-store-type: PKCS12

  port: 443
  servlet:
    context-path: /

增加SSLConfig.java

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SSLConfig {

    @Bean
    public TomcatServletWebServerFactory servletContainer() { //springboot2 新变化

        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(initiateHttpConnector());
        return tomcat;
    }

    private Connector initiateHttpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8888);//http端口
        connector.setSecure(true);//这个坑,网上普遍为false重定向容易出错,我这里设置为true
        connector.setRedirectPort(443);
        return connector;
    }

}

ok,基本上就是这样

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值