• springboot配置https访问


    1.首先去腾讯云或者阿里云申请免费ssl证书,以腾讯云为例,不建议自己生成,因为没办法测试发布环境的效果,填写个人信息,最后提示审核中才是申请成功,审核比较快,半小时就通过了。

     

    2.下载已经通过审核的证书文件夹,解压文件如下,根据项目选择使用,

     

    3.因为springboot使用的是内置tomcat,所以我这边选择tomcat文件,在resources目录下导入xxx.jks

     

    4.接下来配置properties文件,密码在同文件夹的keystorePass.txt中(腾讯云)

     

    5.个人比较喜欢yml格式,简洁直观(阿里云)

     

    6.到这个时候基本配置完成,但不能使用https后就通知所有人重新保存网址,这时候就需要增加请求转发,自动从http转到https

       写法一:在启动类也就是@SpringBootApplication注解类中加上使用

    /**
    * http重定向到https
    * @return
    */
    @Bean
    public TomcatServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
    @Override
    protected void postProcessContext(Context context) {
    SecurityConstraint constraint = new SecurityConstraint();
    constraint.setUserConstraint("CONFIDENTIAL");
    SecurityCollection collection = new SecurityCollection();
    collection.addPattern("/*");
    constraint.addCollection(collection);
    context.addConstraint(constraint);
    }
    };
    tomcat.addAdditionalTomcatConnectors(httpConnector());
    return tomcat;
    }

    @Bean
    public Connector httpConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    //Connector监听的http的默认端口号
    connector.setPort(8080);
    connector.setSecure(false);
    //监听到http的端口号后转向到的https的端口号,也就是项目配置的port
    connector.setRedirectPort(8089);
    return connector;
    }
    写法二:另外新建一个配置类,加上@Configuration注解声明

    @Configuration
    public class TomcatConfig {
    @Bean
    TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() {
    TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(){
    @Override
    protected void postProcessContext(Context context) {
    SecurityConstraint constraint = new SecurityConstraint();
    constraint.setUserConstraint("CONFIDENTIAL");
    SecurityCollection collection = new SecurityCollection();
    collection.addPattern("/*");
    constraint.addCollection(collection);
    context.addConstraint(constraint);
    }
    };
    factory.addAdditionalTomcatConnectors(createTomcatConnector());
    return factory;
    }

    private Connector createTomcatConnector() {
    Connector connector = new
    Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    connector.setPort(5001);
    connector.setSecure(false);
    connector.setRedirectPort(443);
    return connector;
    }
    }
    7.现在可以通过https://域名:8089/index访问,这样就看到熟悉的小锁了

     

    8.通过域名访问失败原因及解决办法

    域名未配置解析,去域名管理配置解析,10分钟后通过ping 域名看是否显示ip,显示则解析成功!
    域名未认证,去域名管理上传个人信息进行域名实名!
    域名已实名但未网站未备案,解决办法
    去进行网站实名,使用腾讯云小程序认证进行icp备案即可!
    可以通过域名访问但必须加上自定义端口才行,不能使用8080或443等默认端口,否则提示连接已重置!
    ————————————————
    版权声明:本文为CSDN博主「clmm123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/baidu_37302589/article/details/100692957

  • 相关阅读:
    (一)Ionic 项目搭建(参考)
    MySQL安装及常用命令
    (五)vue.js 集成scss(参考)
    (四)vue.js 外部配置文件(参考)
    (三)vue.js api统一管理(参考)
    好玩的折纸效果
    PropTypes没有定义的问题
    border边框设置为1px
    写了一个好玩的弹性列表效果
    H5中的requestAnimationFrame
  • 原文地址:https://www.cnblogs.com/zhncnblogs/p/14707959.html
Copyright © 2020-2023  润新知