springboot特殊问题处理1——springboot如何实现同时支持http和https访问

在实际项目开发过程中,大部分时候我们都是基于http访问去做的,但是一些特殊场景必须使访问协议同时支持http和https协议,这时候我们的项目就需要配置ssl协议证书,同时自定义添加web容器支持。具体写法请看如下信息:

配置的前提:

  • springboot版本2.1.5
  • 生成https对应的ssl证书文件


1.在项目配置文件application.properties添加信息:

###配置SSL同时支持http和https访问实现
###https:10093
server.port=10093
server.ssl.key-store=classpath:ssl/server.jks
server.ssl.key-store-password=665666
server.ssl.key-store-type=JKS

###https:10094
http.port=10094

项目结构如下图:

2.添加自定义web容器支持

/**
 * SpringBoot配置SSL同时支持http和https访问实现
 */
@Configuration
public class TomcatConfig {

    @Value("${http.port}")
    private int httpPort;

    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        // 添加http
        tomcat.addAdditionalTomcatConnectors(createStandardConnector());
        return tomcat;
    }

    private Connector createStandardConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(httpPort);
        return connector;
    }
}

3.最终测试验证

需要注意的是:

https可以直接访问http链接,反过来则http无法访问https。

相关推荐

  1. SpringBoot项目中同时支持httpshttp协议

    2024-05-14 08:14:14       25 阅读
  2. springboot设置RestTemplate支持http&https

    2024-05-14 08:14:14       11 阅读
  3. Tomcat同时支持httphttps

    2024-05-14 08:14:14       10 阅读
  4. php跨域https访问http问题分析

    2024-05-14 08:14:14       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-14 08:14:14       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-14 08:14:14       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-14 08:14:14       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-14 08:14:14       20 阅读

热门阅读

  1. Vue.js:轻量级而强大的前端框架

    2024-05-14 08:14:14       12 阅读
  2. 02-登录页面、动态路由、权限等模块开发

    2024-05-14 08:14:14       13 阅读
  3. 23. 合并 K 个升序链表 - 力扣(LeetCode)

    2024-05-14 08:14:14       12 阅读
  4. 【设计模式】桥接模式-学习记录

    2024-05-14 08:14:14       11 阅读
  5. 量子计算入门:原理与编程

    2024-05-14 08:14:14       11 阅读
  6. MySQL和MongoDB区别

    2024-05-14 08:14:14       11 阅读
  7. k8s 配置管理

    2024-05-14 08:14:14       11 阅读
  8. Redis 5.0 Stream数据结构深入分析

    2024-05-14 08:14:14       12 阅读
  9. 力扣:93. 复原 IP 地址

    2024-05-14 08:14:14       12 阅读
  10. 数据库和Redis数据不一致的问题

    2024-05-14 08:14:14       10 阅读
  11. Rust 语言不支持 goto 语句

    2024-05-14 08:14:14       12 阅读
  12. ubuntu 24.04 devilspie 报错解决

    2024-05-14 08:14:14       13 阅读
  13. CircleCI的原理及应用详解(二)

    2024-05-14 08:14:14       12 阅读
  14. 10、Go Gin 连接Redis以及Cookie&Session

    2024-05-14 08:14:14       13 阅读