ssl协议位于tcp/ip协议与各种应用协议之间,为数据通信提供安全支持。

ssl协议分为两层:
基于B/S的web应用,是通过https来实现ssl的。https是http的安全版,即在http下加入ssl层,https的安全基础是ssl;
我们开始在spring boot中使用ssl设置;
1.生成证书
每一个jdk或者jre中都有一个工具叫keytool,它是一个证书管理工具,可以用来生成自签名的证书;打开cmd,进入jdk/bin路径,敲入命令
keytool -genkey -alias tomcat
在用户路径下生成 .keystore文件 ,这就是我们要使用的证书文件。
2.spring boot配置ssl
将.keystore文件复制到项目根目录,然后配置application.properties中做ssl配置
server.ssl.key-store=.keystore server.ssl.key-store-password=密码 server.ssl.keyStoreType = JKS server.ssl.keyAlias=tomcat
启动项目
访问地址 https://localhost:8080
3、http转https
要实现这个功能,我们需要配置TomcatEmbeddedServletContainerFactory,并且添加tomcat的connector来实现。
package com.example;
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.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.boot.web.servlet.ErrorPage;
import org.springframework.context.annotation.Bean;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* Created by xingzhuipingye on 2017/5/7.
*/
@Controller
@SpringBootApplication
public class ApplicationMy {
@RequestMapping("/")
public String index(Model model){
Person single = new Person("aa",11);
List<Person> list = new ArrayList<>();
Person p1 = new Person("xx",11);
Person p2 = new Person("yy",22);
Person p3 = new Person("zz",33);
list.add(p1);
list.add(p2);
list.add(p3);
model.addAttribute("singlePerson",single);
model.addAttribute("people",list);
return "index";
}
public static void main(String[] args){
SpringApplication.run(ApplicationMy.class);
}
@Bean
public EmbeddedServletContainerFactory servletContainer(){
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(){
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
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(8088);
return connector;
}
}
注:我在application.properties 中修改了端口为8088
此时我们访问http://localhost:8080 就会跳转到 https://localhost:8088
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# spring
# boot配置
# ssl
# boot
# springboot配置ssl后启动一直是端口被占用的解决
# SpringBoot配置SSL同时支持http和https访问实现
# RabbitMQ开启SSL与SpringBoot连接测试的配置方法
# 使用SpringBoot配置https(SSL证书)
# spring boot配置ssl实现HTTPS的方法
# SpringBoot实战之SSL配置详解
# spring boot配置ssl(多cer格式)超详细教程
# 来实现
# 就会
# 我在
# 这就是
# 它是
# 数据通信
# 中都
# 即在
# 要使
# 两层
# 大家多多
# 可以用来
# 跳转到
# 有一个
# 中做
# 身份认证
# 传输协议
# 敲入
# TomcatEmbeddedServletContainerFactory
# java
相关文章:
c++ stringstream用法详解_c++字符串与数字转换利器
如何配置FTP站点权限与安全设置?
太原网站制作公司有哪些,网约车营运证查询官网?
如何通过.red域名打造高辨识度品牌网站?
如何在阿里云虚拟主机上快速搭建个人网站?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
建站之星在线客服如何快速接入解答?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
建站主机如何安装配置?新手必看操作指南
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
浅析上传头像示例及其注意事项
如何通过VPS搭建网站快速盈利?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
如何用PHP快速搭建CMS系统?
seo网站制作优化,网站SEO优化步骤有哪些?
动图在线制作网站有哪些,滑动动图图集怎么做?
微信小程序 五星评分(包括半颗星评分)实例代码
建站之星代理平台如何选择最佳方案?
家庭建站与云服务器建站,如何选择更优?
如何制作一个表白网站视频,关于勇敢表白的小标题?
魔方云NAT建站如何实现端口转发?
C#怎么使用委托和事件 C# delegate与event编程方法
如何通过网站建站时间优化SEO与用户体验?
建站主机是否等同于虚拟主机?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
建站之星×万网:智能建站系统+自助建站平台一键生成
网站好制作吗知乎,网站开发好学吗?有什么技巧?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
如何在万网自助建站中设置域名及备案?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
小建面朝正北,A点实际方位是否存在偏差?
深圳网站制作培训,深圳哪些招聘网站比较好?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
建站主机SSH密钥生成步骤及常见问题解答?
python的本地网站制作,如何创建本地站点?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
如何续费美橙建站之星域名及服务?
c# 在ASP.NET Core中管理和取消后台任务
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
建站之星如何通过成品分离优化网站效率?
装修招标网站设计制作流程,装修招标流程?
黑客如何利用漏洞与弱口令入侵网站服务器?
*请认真填写需求信息,我们会在24小时内与您取得联系。