传输层安全性协议(英语: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 证书的有效期
如图:
注:正式环境中请填写标准值
根据路径找到生成好的证书,把证书复制到项目里,如图:
在 application.yml 中添加如下配置,如图:
添加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访问的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号