SpringBoot配置SSL同时支持http和https访问实现

 更新时间:2022年07月27日 09:47:11   作者:michael.csdn  
本文主要介绍了SpringBoot配置SSL同时支持http和https访问实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

传输层安全性协议(英语:Transport Layer Security,缩写作 TLS),及其前身安全套接层(Secure Sockets Layer,缩写作 SSL)是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障。

SSL包含记录层(Record Layer)和传输层,记录层协议确定传输层数据的封装格式。传输层安全协议使用X.509认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密钥作为会谈密钥(Session key)。

这个会谈密钥是用来将通信两方交换的数据做加密,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。

第一步:生成证书

在配置 TLS/SSL 之前需要先拿到相应的签名证书,配置了JAVA开发环境,可以使用 Java 下面的 Keytool 来生成证书,打开控制台输入:
keytool -genkey -alias michaelSpica -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore E:\Temp\michaelSpica.p12 -validity 3650

  • -alias 别名(可随便取)
  • -storetype 指定密钥仓库类型
  • -keyalg 生证书的算法名称,RSA是一种非对称加密算法
  • -keysize 证书大小
  • -keystore 生成的证书文件的存储路径(相对路径或绝对路径)
  • -validity 证书的有效期

如图:

在这里插入图片描述

注:正式环境中请填写标准值

第二步:获取证书

根据路径找到生成好的证书,把证书复制到项目里,如图:

在这里插入图片描述

第三步:增加SSL配置

application.yml 中添加如下配置,如图:

在这里插入图片描述

第四步:配置https访问

添加Spring Boot启动时,读取配置信息,如

(注:请添加必要的jar)

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
package com.michael.protocol.config;

import org.apache.catalina.connector.Connector;
import org.springframework.beans.factory.annotation.Value;
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;

/**
 * Created by michael on 2019/2/23.
 */
@Configuration
public class TomcatConfig {

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

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

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

注:这是 spring boot 2.0.X 版本的

至此,所有工作已经完成,启动项目,如:

在这里插入图片描述

可以看到两个端口,说明已经成功,即可通过以下两种方式进行访问:
https://localhost:443
http://localhost:80

到此这篇关于SpringBoot配置SSL同时支持http和https访问实现的文章就介绍到这了,更多相关SpringBoot SSL支持http和https内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现二叉树的深度优先遍历和广度优先遍历算法示例

    Java实现二叉树的深度优先遍历和广度优先遍历算法示例

    这篇文章主要介绍了Java实现二叉树的深度优先遍历和广度优先遍历算法,结合实例形式详细分析了二叉树的定义、深度优先遍历与广度优先遍历算法原理与相关操作实现技巧,需要的朋友可以参考下
    2018-04-04
  • Seata分布式事务出现ABA问题解决

    Seata分布式事务出现ABA问题解决

    这篇文章主要为大家介绍了Seata分布式事务出现ABA问题解决方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 深入解析JVM之内存结构及字符串常量池(推荐)

    深入解析JVM之内存结构及字符串常量池(推荐)

    Java作为一种平台无关性的语言,其主要依靠于Java虚拟机——JVM,接下来通过本文给大家介绍JVM之内存结构及字符串常量池的相关知识,需要的朋友可以参考下
    2020-07-07
  • jar包手动添加到本地maven仓库的步骤详解

    jar包手动添加到本地maven仓库的步骤详解

    在写程序的过程中,有时候会遇到私服里没有需要的jar包的情况,这时候我们就可以手动导入jar包到本地仓库进行使用,下面这篇文章主要给大家介绍了关于jar包手动添加到本地maven仓库的相关资料,需要的朋友可以参考下
    2022-08-08
  • java实现读取、删除文件夹下的文件

    java实现读取、删除文件夹下的文件

    本文给大家分享的是java实现读取、删除文件夹下的文件,其中File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,有需要的小伙伴可以参考下。
    2015-05-05
  • Java接口统一样式返回模板的实现

    Java接口统一样式返回模板的实现

    这篇文章主要介绍了Java接口统一样式返回模板的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • java异常和错误类总结(必看篇)

    java异常和错误类总结(必看篇)

    下面小编就为大家带来一篇java异常和错误类总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • Java设计模式之观察者模式(Observer模式)介绍

    Java设计模式之观察者模式(Observer模式)介绍

    这篇文章主要介绍了Java设计模式之观察者模式(Observer模式)介绍,Java深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解,需要的朋友可以参考下
    2015-03-03
  • 详解Java如何实现有效的并发处理

    详解Java如何实现有效的并发处理

    随着互联网的蓬勃发展,现代软件系统对于并发性能的要求越来越高,如何学习和掌握并发编程技术成为了Java开发人员必备的技能之一,本文主要介绍了Java并发编程的相关概念、原理和实践技巧,感兴趣的可以了解下
    2023-11-11
  • 如何在SpringBoot中添加拦截器忽略请求URL当中的指定字符串

    如何在SpringBoot中添加拦截器忽略请求URL当中的指定字符串

    这篇文章主要介绍了在SpringBoot中添加拦截器忽略请求URL当中的指定字符串,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08

最新评论