全网最细springboot学习笔记—SpringBoot配置SSL(https)

news2024/9/20 18:47:42

文章主要内容大致为:

SpringBoot配置SSL(https)

SpringBoot全局异常处理

SpringBoot 404页面处理

接下来让我们一起探讨三大框架之一的springboot框架:

SpringBoot配置SSL(https)

SpringBoot可以通过在application.properties或application.yml配置文件中配置各种server.ssl.*属性来声明性使用SSL(https),比如下面的例子在application.properties中设置SSL属性:

如果使用了上面的配置就表示springboot应用程序不再在端口8080上支持HTTP连接请求,SpringBoot不能通过配置application.properties来实现既支持HTTP连接又支持HTTPS连接,这是做不到的,如果要同时支持HTTP和HTTPS,则需要以编程方式配置其中的一个,建议使用application.properties文件来配置HTTPS,以编程方式配置HTTP,这是比较容易的方法;

SpringBoot支持配置https具体步骤:

1、生成证书,可以使自签名证书(平时测试的时候)或者从SSL证书授权中心购买证书(上线);

平时生成证书进行测试的话,有两种生成证书的方式

(1)利用JDK工具生成证书

证书生成后我们可以验证下jks是否包含了完整的证书链:

keytool -list -v -keystore server.jks

keytool -list -v -keystore server.pkcs12 

(2)利用Openssl工具生成证书

通过openssl来生成,如果linux中没有安装openssl,需要安装一下,执行:

yum install openssl openssl-devel -y 

1、生成一个RSA密钥 (私钥)

openssl genrsa -out server.key 2048 

2、生成一个证书请求

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=power Inc./OU=Web Security/CN=power.com" 

3、自己签发证书

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 

字段解读

C字段:Country,单位所在国家,为两位数的国家缩写,如:CN 表示中国;

ST 字段:State/Province,单位所在州或省;

L 字段:Locality,单位所在城市/或县区;

O 字段:Organization,此网站的单位名称;

OU 字段:Organization Unit,下属部门名称,也常常用于显示其他证书相关信息,如证书类型,证书产品名称或身份验证类型或验证内容等;

CN 字段:Common Name,网站的域名;

转换为pkcs12格式(因为在Java中使用证书,需要转换一下格式)

openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12

openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.pkcs12

转换为jks格式(因为在Java中使用证书,需要转换一下格式,jks是java独有的)

keytool -importkeystore -srckeystore server.pkcs12 -destkeystore server.jks -srcstoretype pkcs12 -deststoretype jks 

2、配置或编写代码;

注意我们是在Java环境中,常用的证书形式有p12、pkcs12格式、jks格式,如果不是该格式,需要转换;p12、pkcs12是同一个,只是证书的后缀不同而已;

作业:单独有一个Tomcat,配置一下https;

SpringBoot全局异常处理

在项目的开发中,如果报错了,直接在页面显示500错误,输出一大堆的异常信息,这对应用户来说体验不友好,所以在企业里面对这些异常一般都会统一捕获,由一个专门的异常处理类来统一处理。(原来在ssm框架中,我们是在tomcat定义错误页或者web.xml定义错误页)

具体参考课程演示和代码;https://www.bilibili.com/video/BV1pK411G7aw

SpringBoot 404页面处理

当输入地址有误,会进入springboot默认的白板404页面,对用户不太友好,我们可以统一定义一个全局的404错误处理;



喜欢的朋友记得点赞、收藏、关注哦!!!

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

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

相关文章

如何使用ssm实现基于java的电脑硬件库存管理系统

TOC ssm145基于java的电脑硬件库存管理系统jsp 第1章 绪论 1.1 课题背景 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。所…

第四十六篇,PID心法解读

猛回头,有近半年的时光没输出了,看着昨天加班调的PID数据,灵光闪现了一下,赶紧记录。 参数整定找最佳,从小到大顺序查   先是比例后积分,最后再把微分加 曲线振荡很频繁,比例度盘要放大   曲…

基于Open Cv的数字图像手势识别系统,Python编程实现,可以识别以下6种手势,含代码和报告

该项目的目标是设计并实现一个能够实时识别特定手势的系统。系统将使用OpenCV库来捕获视频流,并通过图像处理技术来识别特定的手势。具体来说,系统将识别以下六种手势: 挥手 - 手掌水平移动。握拳 - 手指全部弯曲成拳头。坐起 - 模拟做仰卧起…

sft是mean-seeking rl是mode-seeking

原文链接 KL散度是D(P||Q),P和Q谁在前谁在后是有讲究的,P在前,就从P采样。 D K L ( P ∣ ∣ Q ) E x − p ( x ) ( l o g ( P ( x ) / Q ( x ) ) ) D_{KL}(P||Q)E_{x-p(x)}(log(P(x)/Q(x))) DKL​(P∣∣Q)Ex−p(x)​(log(P(x)/Q(x)))想象一…

关于Java中@Component的使用中出现@Autowired为NULL的问题

目录: 关于Java中Component的使用中出现Autowired为NULL的问题解决过程 关于Java中Component的使用中出现Autowired为NULL的问题 解决过程 我在写一个项目中使用Component配置了一个RedisCompent在这里插入代码片类我将在AccountController和 UserinfoController中…

如何使用ssm实现基于Vue框架的订餐系统+vue

TOC ssm157基于Vue框架的订餐系统vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管…

AI数字时代客户体验白皮书5G云算力网络云网终端AIGC人工智能宽带政企物联网专线 IDC智慧城市专家学者教授培训讲师分享

客户体验的时代已然来临 在过去的几十年里,中国企业逐步从产品驱动转向市场驱动,从规模竞争走向创新竞争。然而,随着市场竞争的白热化和产品、服务的高度同质化,企业之间的差异化逐渐被削弱,传统的价格战、渠道战已经…

一题看 无记忆化dfs、记忆化dfs和dp直接的转化

无记忆化dfs&#xff1a; class Solution { public:bool resfalse;bool wordBreak(string s, vector<string>& wordDict) {set<string> S;int ns.size();for(auto ss:wordDict){S.insert(ss);}function<void(int)> dfs[&](int t){if(restrue) retur…

深度学习--对抗生成网络(GAN)

对抗生成网络&#xff08;Generative Adversarial Network, GAN&#xff09;是一种深度学习模型&#xff0c;由伊恩古德费洛&#xff08;Ian Goodfellow&#xff09;及其同事在2014年提出。GAN通过两个神经网络的对抗过程来生成数据&#xff0c;这两个网络分别是生成器&#xf…

Chapter 03 Vue指令(下)

欢迎大家订阅【Vue2Vue3】入门到实践 专栏&#xff0c;开启你的 Vue 学习之旅&#xff01; 文章目录 前言一、v-on指令二、v-for指令三、v-bind指令 前言 在 Vue.js 中&#xff0c;指令是带有 v- 前缀的特殊属性&#xff0c;不同属性对应不同的功能。通过学习不同的指令&#…

临床医生与人工智能识别三级淋巴结成熟状态的研究对比|文献速递·24-08-24

小罗碎碎念 这期推文的主题是三级淋巴结&#xff0c;主要解决一个问题——临床上如何识别三级淋巴结&人工智能如何应用于三级淋巴结的识别。这两篇文献来源于临床和工科两位不同的老师&#xff0c;是在与他们交流的过程中推荐的&#xff0c;在这里向他们表示感谢&#xff…

在VSCode中使用REST Client插件调试HTTP接口

在 VSCode 中安装 REST Client 扩展程序。新建 test.http 文件。编写请求 请求编写格式可以查看 REST Client 扩展程序说明。点击“Send Request”发送请求 5. 等待请求完成查看响应 请求完成会自动打开响应结果。响应结果上面部分是响应头&#xff0c;下面部分是响应…

idea付费插件,SequenceDiagram比较好用

以下idea付费插件你们都用过哪些呢&#xff1f; SequenceDiagram插件是一种用于绘制时序图的工具。时序图是一种图形化的表示对象之间消息传递顺序的方法。 该插件可以在使用各种编程语言编写代码时&#xff0c;方便地绘制时序图&#xff0c;以帮助开发者更好地理解和描述系统…

【数据分享】全球含建筑高度的建筑物数据(shp格式\约15亿栋建筑物)

建筑数据是我们在各项研究中经常使用到的数据。之前我们能获取到的建筑数据大多没有建筑高度信息&#xff0c;而建筑高度是建筑数据最重要的属性。之前我们给大家分享了我国分城市的含建筑高度的建筑物数据&#xff08;可查看之前的文章获悉详情&#xff09;&#xff0c;本次我…

ST-LINK常见错误总结

伴随着走进STM32 开发 &#xff0c;烧录部分一直会出现 各种各样的问题 &#xff0c;写一篇博文记录关于烧录部分的问题&#xff0c;此文会持续更新&#xff0c;可能之后又遇到其他新的问题&#xff0c;会回来再添加的。 目录 STLINK CONNECTION ERROR 问题的解决 固件丢失 …

buuctf [MRCTF2020]hello_world_go

前言 学习笔记 这题签到&#xff01; 64IDA打开。 查找字符串发现什么都没有。。。 没事 搜索main()【不知道go语言有没有&#xff0c;先搜索再说】 随便点开一个。 有flag格式&#xff0c;提交看看呗。 成了&#xff0c;签到。 flag{hello_world_gogogo} 题外话&#xff0c;…

双系统报错verifiying shim SBAT data falled: Security Pollcy Violation,Ubuntu无法打开

问题 一觉醒来&#xff0c;打开电脑报错无法打开&#xff0c;详细报错如下&#xff1a; verifiying shim SBAT data falled: Security Pollcy Violation Something has gone serlously wrong: seni self-check falled: Security Policy vlolation 这是由于Windows系统自动更新…

x-cmd mod | x btop - 使用 btop 来查看进程的实时信息

目录 介绍使用语法子命令选项FLAGS 介绍 btop 是系统监控工具&#xff0c;能够实时监控 CPU、内存、磁盘、网络和进程使用情况。 使用语法 x btop [FLAGS]子命令 名称描述–cmd直接运行 btop 命令 选项 名称描述–preset,-p 从预设开始&#xff0c;整数范围为 0-9。–upda…

【深度学习】使用Conda虚拟环境安装多个版本的CUDA和CUDNN方便切换

conda虚拟环境安装CUDA和CUDNN 官网教程 https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#conda-installation 1. 背景 深度学习用显卡训练的时候&#xff0c;需要安装与显卡对应的cuda和cudnn。但不同的项目所支持的pytorch版本是不一样的&#x…

考研备考是选择电子学习工具无纸化学习?还是纸质版训练考感?

作为一名成功上岸的考研学子&#xff0c;回顾备考的艰辛历程&#xff0c;深感学习工具的选择至关重要。在当今数字化时代&#xff0c;我们面临着一个关键的抉择&#xff1a;是延续传统的纸质版资料学习&#xff0c;还是投身于电子学习工具的怀抱&#xff0c;开启无纸化学习之旅…