摘要:这里我们将详细介绍SpringBoot如何配置SSL,将你的http升级为https
Http和Https的基本概念
Http:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
Https:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
Https协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
Https和Http的区别主要如下:
1、Https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、Http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、Http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、Http的连接很简单,是无状态的;Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
这里以腾讯云为例
1.首先我们来到你的域名这你要设置好你的服务器ip
2.接下来到 SSL证书,确定你的证书是已颁发。
3.点击下载证书,然后解压,我使用的是tomcat所以打开tomcat文件夹
4.这里有一个jks的文件
5.把jks文件复制到你的工程resources文件下
6.这里的证书别名在腾讯云上就是这个通用名称
7.打开你的SpringBoot工程中,打开application.properties文件添加以下内容
1 2 3 4 5 6 7 8 9 10
| #https加密端口号 443 server.port=443 #SSL证书路径 一定要加上classpath: server.ssl.key-store= classpath:www.XXXX.cn.jks #SSL证书密码 server.ssl.key-store-password=XXX #证书类型 server.ssl.key-store-type=JKS #证书别名 server.ssl.key-alias=www.XXX.cn
|
8.再打开你的XXXApplication文件添加以下代码,什么都不用改动,直接粘贴
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| package com.XXX.XXX;
import org.apache.catalina.Context; import org.apache.catalina.connector.Connector; import org.apache.tomcat.util.descriptor.web.SecurityCollection; import org.apache.tomcat.util.descriptor.web.SecurityConstraint; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication public class WorkApplication{
public static void main(String[] args) { SpringApplication.run(WorkApplication.class, args); }
@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.setPort(8080); connector.setSecure(false); connector.setRedirectPort(443); return connector; } }
|
9.这里你的工程应该打包成jar包,最后你布置到你的云服务器上就可以了,访问后