• springBoot2.X 支持http、https访问


    1.第一步 生成https证书

    打开cmd

    keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore C:UsersTXJSDesktop	empsslhttps.p12 -validity 365

    2.第二步 将证书复制到项目的 resources 目录下 添加SSL配置

    server:
      port: 443
      ssl:
        key-store: classpath:sslhttps.p12
        key-alias: tomcathttps
        key-store-password: 123456
        enabled: true
        key-store-type: JKS

    3.如果只是想变成https访问 上面步骤已经足够 如果还需要配置http访问 新增配置文件

    package com.txj.bwbd.config;
    
    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.TomcatConnectorCustomizer;
    import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
    import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * Create by IntelliJ IDEA
     *
     * @author chenlei
     * @dateTime 2019/5/23 18:09
     * @description TomcatConfig
     */
    @Configuration
    public class TomcatConfig {
    
    //    @Bean
    //    public ServletWebServerFactory webServerFactory() {
    //        TomcatServletWebServerFactory fa = new TomcatServletWebServerFactory();
    //        fa.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "[]{}"));
    //        return fa;
    //    }
    
    
    //    @Bean
    //    public Connector connector(){
    //        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 TomcatServletWebServerFactory tomcatServletWebServerFactory(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);
    //            }
    //        };
    //        connector.setProperty("relaxedQueryChars", "[]{}");
    //        tomcat.addAdditionalTomcatConnectors(connector);
    //        return tomcat;
    //    }
    
        /* --------------------请按照自己spring boot版本选择 start--------------------- */
    
        // 这是spring boot 2.0.X版本的 添加这个,上一个就不用添加了
        @Bean
        public ServletWebServerFactory servletContainer() {
            TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
            tomcat.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
            return tomcat;
        }
    
        /* --------------------请按照自己spring boot版本选择 end--------------------- */
    
    
        // 配置http
        private Connector createStandardConnector() {
            Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
            connector.setPort(80);
            return connector;
        }
    
    }

    备注:完成以上配置就ok了 留坑:

     使用该方法 将http重定向到 https端口 会导致post请求参数丢失 原因未知! 不重定向是完全没问题的 

    4. 附上测试截图

    https:

     http:

     备注:这里注意使用postman测试https需要关掉 postman SSL认证

     5.购买了阿里ESC实例的可以阿里云申请免费的SSL证书 替换上面自己生成的证书即可 证书别名可以注释掉

  • 相关阅读:
    IDEA远程仓库版本回滚
    智能风控平台核心之风控决策引擎(三)
    智能风控平台核心之风控决策引擎(一)
    深入理解Oracle的imp/exp 和各版本之间的规则
    oracle忘记用户密码
    Windows下使用cmd启动Oracle EM和sql命令使用+主机身份认证
    jsp调用javabean出现错误HTTP Status 500
    jsp查询页面和结果页面在同一页面显示和交互
    javabean+servlet+jsp程序_个人辛苦探索
    用Eclipse 开发Dynamic Web Project应用程序 【转】
  • 原文地址:https://www.cnblogs.com/guanxiaohe/p/12461809.html
Copyright © 2020-2023  润新知