zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    CSU 1333 Funny Car Racing
    FZU 2195 检查站点
    FZU 2193 So Hard
    ZOJ 1655 FZU 1125 Transport Goods
    zoj 2750 Idiomatic Phrases Game
    hdu 1874 畅通工程续
    hdu 2489 Minimal Ratio Tree
    hdu 3398 String
    洛谷 P2158 [SDOI2008]仪仗队 解题报告
    POJ 1958 Strange Towers of Hanoi 解题报告
  • 原文地址:https://www.cnblogs.com/zhncnblogs/p/14707959.html
Copyright © 2011-2022 走看看