Spring Boot 配置SSL 实现HTTPS

文章目录

            • 1. 简介
            • 2. 证书生成
            • 3. 证书引入
            • 4. 创建测试index
            • 5. 配置
            • 6. 创建配置类
            • 7. 创建控制器测试
            • 8. 浏览器验证

1. 简介
传输层安全性协议(英语:Transport Layer Security,缩写作 TLS),及其前身安全套接层
(Secure Sockets Layer,缩写作 SSL)是一种安全协议,目的是为互联网通信,提供安全及数
据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器,网景导航者时,推出HTTPS
协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布第一版TLS标准文
件。随后又公布RFC 524620088月)与 RFC 617620113月)。在浏览器、电子邮件、
即时通信、VoIP、网络传真等应用程序中,广泛支持这个协议。主要的网站,如Google、
Facebook等也以这个协议来创建安全连接,发送数据。目前已成为互联网上保密通信的工业标准。SSL包含记录层(Record Layer)和传输层,记录层协议确定传输层数据的封装格式。传输层安全
协议使用X.509认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密钥作为会谈
密钥(Session key)。这个会谈密钥是用来将通信两方交换的数据做加密,保证两个应用间通信的
保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。

在配置TLS/SSL之前我们需要拿到相应签名的证书,测试实例可以使用Java 下面的 Keytool 来生成证书:

2. 证书生成

打开控制台输入:

keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048  -keystore keystore.p12 -validity 3650

在这里插入图片描述
这里的别名是 keystore.p12,密码什么的直接设置就好,然后回车

3. 证书引入

然后根据路径找到生成好的证书,把证书复制到项目里,我是放到了这里
在这里插入图片描述

4. 创建测试index

放好证书后,建立一个index.html放到resources/templates文件夹下,一会用于测试。

5. 配置

再配置application.properties

server.port=8888
server.tomcat.uri-encoding=utf-8
server.servlet.context-path=/demoserver.ssl.key-store=keystore.p12
server.ssl.key-store-password=123456
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=tomcatspring.thymeleaf.prefix=classpath:/templates/
6. 创建配置类
@Configuration
public class HttpsConfig {/*** spring boot 1.0*//* @Beanpublic EmbeddedServletContainerFactory servletContainer() {TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {@Overrideprotected 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;}*//*** spring boot 2.0* @return*/@Beanpublic TomcatServletWebServerFactory servletContainer() {TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {@Overrideprotected 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;}@Beanpublic Connector httpConnector() {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme("http");//Connector监听的http的端口号connector.setPort(8080);connector.setSecure(false);//监听到http的端口号后转向到的https的端口号connector.setRedirectPort(8888);return connector;}}
7. 创建控制器测试
@Controller
@RequestMapping
public class ViewControlller {@GetMapping("index")public String index(){return "index";}
}

值得注意的是加入的springboot jar的版本不同代码有一定的改变,我这里用的是2.0的版本,还有就是要想跳转到html页面的时候一定注意的就是千万不要在Controller中用@RestController而是要用Controller,如果用RestController的话就会直接把你的index解析显示在页面当中,就不会跳转了,还有就是想要跳转的话一定要加入下面的两个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>

准备完毕后启动项目,打印台显示
在这里插入图片描述

8. 浏览器验证

从控制台可以看出:
http地址为:http://127.0.0.1:8080/demo/index
https地址为:https://127.0.0.1:8888/demo/index
再输入:
127.0.0.1:8080/demo/index就会自动跳转

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一幅GAN网络创造的肖像图卖了40万美金,但那又怎样?

在2018年一场著名的拍卖会上&#xff0c;一部AI制作的肖像以432,500美元的价格成交&#xff01;这篇新闻在科技媒体上被广泛讨论&#xff0c;有些人认为这一事件对人类艺术家构成了威胁。其实&#xff0c;这只是深度学习快速发展中众多不可思议的案例中的一个&#xff0c;这些故…

PyTorch可视化理解卷积神经网络

如今&#xff0c;机器已经能够在理解、识别图像中的特征和对象等领域实现99&#xff05;级别的准确率。生活中&#xff0c;我们每天都会运用到这一点&#xff0c;比如&#xff0c;智能手机拍照的时候能够识别脸部、在类似于谷歌搜图中搜索特定照片、从条形码扫描文本或扫描书籍…

区块链工程师平均薪资 25~50k?6 个理由告诉你为什么要懂区块链!

作者 | Carol出品 | 区块链大本营&#xff08;blockchain_camp&#xff09;* 文末可参与抽奖活动&#xff01;如果说有一个什么领域&#xff0c;能让中科院、华为、腾讯、京东、360、微众银行的大咖汇聚在一起&#xff0c;那一定是——区块链。悄咪咪地给大家剧透一下&#xff…

SpringBoot Controller接收参数的几种常用方式

第一类&#xff1a;请求路径参数 1、PathVariable 获取路径参数。即url/{id}这种形式。 2、RequestParam 获取查询参数。即url?name这种形式 例子 GET http://localhost:8080/demo/123?namesuki_rong 对应的java代码 GetMapping("/demo/{id}") public void demo…

NLP度量指标BELU真的完美么?

刚接触自然语言处理的朋友通常会问我&#xff1a;当系统的输出是文本&#xff0c;而非对输入文本进行某种分类&#xff0c;如何对该系统进行评估。当模型的输入是文本信息&#xff0c;输出也是文本信息时&#xff0c;我们称之为序列到序列问题&#xff0c;也可称为字符串转换问…

开放华为30年研发能力与实践 助力DevOps真正落地

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘丹受访者 | 汪维敏出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;高速的中子撞击U235原子核&#xff0c;使其分裂成两个原子核&#xff0c;释放出巨大能量&#xff0c;同时产生的几个中子再去撞击其它…

Euler 今日问世!国内首个工业级的图深度学习开源框架,阿里妈妈造

千呼万唤始出来&#xff01;阿里妈妈正式公布重磅开源项目——图深度学习框架Euler。这是国内首个在核心业务大规模应用后开源的图深度学习框架。此次开源&#xff0c;Euler内置了大量的算法供用户直接使用&#xff0c;相关代码已经可在GitHub上进行下载。 图学习和深度学习都…

天啦噜!在家和爱豆玩quot;剪刀石头布quot;,阿里工程师如何办到?

如今&#xff0c;90、00后一代成为消费主力&#xff0c;补贴、打折、优惠等“价格战”已很难建立起忠诚度&#xff0c;如何与年轻人建立更深层次的情感共鸣&#xff1f;互动就是一种很好的方式&#xff0c;它能让用户更深度的参与品牌/平台呈现的内容&#xff0c;提供更深层的参…

查看计算机或网络资源列表的命令,dos命令net view图文教程,显示网络计算机列表查看共享资源...

大家好&#xff0c;我是老盖&#xff0c;首先感谢观看本文&#xff0c;本篇文章做的有视频&#xff0c;视频讲述的比较详细&#xff0c;也可以看我发布的视频。今天我们学习net命令中的view&#xff0c;它这个命令可以查看网络计算机列表和共享的资源。直接输入net view可以看到…

使用Opencv构建一个简单的图像相似检测器(MSE、SSIM)

介绍 作为人类&#xff0c;我们通常非常善于发现图像中的差异。例如&#xff0c;常见的游戏——两张图像找不同。现在让我们玩下这个游戏吧&#xff0c;首先让我们看看上面的图像&#xff0c;三十秒内看看是否能够从中找出有什么不同的地方。 答案&#xff1a;水果、冰淇淋和…

云+X案例展 | 民生类:云途腾助力城建开启智慧城轨新征程

本案例是由云途腾投递并参与评选&#xff0c;CSDN云计算独家全网首发&#xff1b;更多关于【云X 案例征集】的相关信息&#xff0c;点击了解详情丨挖掘展现更多优秀案例&#xff0c;为不同行业领域带来启迪&#xff0c;推动整个“云行业”的健康发展。2019年7月&#xff0c;城建…

关于开源分布式事务中间件Fescar,我们总结了开发者关心的13个问题

开源分布式事务中间件 Fescar 自1月10日上线v0.1版本以来&#xff0c;受到了开发者们的极大关注&#xff08;watch249&#xff0c;star3005&#xff0c;fork649&#xff0c;社区讨论的issue58&#xff0c;数据统计于1月17日14:00&#xff09;&#xff0c;可见&#xff0c;天下苦…

计算机桌面图标变成腾讯图标,桌面图标变成了未知图标

在电脑日常使用生活中&#xff0c;有时候会遇到桌面图标显示不正常&#xff0c;变成未知图标或者白色。遇到这种情况怎么办呢&#xff1f;今天就让我来和大家分享一下我的经验。首先&#xff0c;产生这种问题的原因&#xff0c;有如下几种&#xff1a;• 电脑桌面图标缓存导致的…

云+X案例展 | 民生类:基于AWS PaaS构建基础集团企业级中台

本案例由浪潮投递并参与评选&#xff0c;CSDN云计算独家全网首发&#xff1b;更多关于【云X 案例征集】的相关信息&#xff0c;点击了解详情丨挖掘展现更多优秀案例&#xff0c;为不同行业领域带来启迪&#xff0c;进而推动整个“云行业”的健康发展。上海市基础工程集团有限公…

互联网下半场的角逐,玩转轻资产的大数据服务 | 阿里云栖开发者沙龙大数据专场(北京站)干货集锦

2019年1月18日下午&#xff0c;一个晴冷的冬日&#xff0c;由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的“阿里云栖开发者沙龙大数据技术专场”走近北京联合大学。当日&#xff0c;近200名大数据开发者和爱好者现场参与了本次活动&#xff0c;同时也有1800多名开发…

日志服务与SIEM(如Splunk)集成方案实战

背景信息 目标 本文主要介绍如何让阿里云日志服务与您的SIEM方案(如Splunk)对接, 以便确保阿里云上的所有法规、审计、与其他相关日志能够导入到您的安全运维中心&#xff08;SOC&#xff09;中。 名词解释 LOG&#xff08;SLS&#xff09; - 阿里云日志服务&#xff0c;简…

行,Python终于跌神坛了!程序员:活该!你敢来评论吗...

Python还有“敌人”吗&#xff1f;最近网络上一则帖子吸引了笔者&#xff0c;大意内容为&#xff1a;据说A是有2年多经验的Python工程师&#xff0c;面一个公司相关的岗位&#xff0c;由于人手紧缺&#xff0c;所以只问了一个框架&#xff0c;就按笔者提的29K办理了入职。对此&…

jdk1.6集成activemq的2种方式

文章目录一、maven方式1. 依赖2. 发送端3. 接收端4. 工具类二、引入jar方式2.1.下载jar2.2. 按需导入三、添加账号密码一、maven方式 1. 依赖 <dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-core</artifactId><v…

plsql 快捷键设置

文章目录1. 创建shortcuts.txt2. 添加自定义内容3. plsql添加配置文件1. 创建shortcuts.txt 路径&#xff1a; 进入PLSQL 的PlugIns目录下面 D:\software\PLSQL Developer\PlugIns\shortcuts.txt2. 添加自定义内容 iINSERT uUPDATE sSELECT fFROM wWHERE oORDER BY dDELETE …

数据中心“容灾”和“备份”的区别

戳蓝字“CSDN云计算”关注我们哦&#xff01;数据中心运行突发故障(如&#xff1a;天灾不可避免的灾难)是无法预测的&#xff0c;计算机里的数据就像扫雷游戏一样&#xff0c;十面埋伏充满雷区&#xff0c;随时都有可能Game Over&#xff0c;容灾备份就是数据安全的最后防线&am…