当前位置: 首页 > news >正文

详细SpringBoot框架教程——SpringBoot配置SSL(https)

前言:

本篇文章主要内容

SpringBoot配置SSL(https)

SpringBoot全局异常处理

SpringBoot 404页面处理

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定义错误页)

具体参考课程演示和代码;

SpringBoot 404页面处理

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

SpringBoot更多话题,老铁们可以学习一下,由于内容较多,就不一一展示全部内容了 !有需要这份《SpringBoot学习笔记》完整学习笔记文档的,麻烦转发后私信回复[777]即可获取

相关文章:

  • 性能测试你需要懂这些
  • 【付费推广】常见问题合集,焦点展台与任务管理
  • Android毕业论文选题基于Uniapp+Springboot实现的校园论坛
  • 佛山复星禅诚医院黄汉森:云边协同,打造线上线下一体化智慧医疗
  • Connor学JVM - 执行引擎
  • 【软考学习6】计算机存储结构——局部性原理、Cache、主存地址单元、磁盘存取、总线和可靠性
  • Python 基于OpenCV+face_recognition实现人脸捕捉与人脸识别
  • TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX一统天下 ⛵
  • 关于 Java Long 类型传给前端损失精度
  • 30分钟熟练使用最常用的ES6,还不学是等着被卷死?
  • 【面试题】面试必备我跟面试官聊了一个小时线程池!
  • 设置服务器上MySQL允许外网访问
  • 【牛客网刷题】中秋节前开启java专项练习错题总结第一天
  • 如何在revit中管理CAD的图层?
  • Nacos2.1.0与Seata1.5.2版本基于Docker部署指南
  • 07.Android之多媒体问题
  • 0基础学习移动端适配
  • conda常用的命令
  • CSS 三角实现
  • css系列之关于字体的事
  • docker容器内的网络抓包
  • Git同步原始仓库到Fork仓库中
  • Js基础——数据类型之Null和Undefined
  • Meteor的表单提交:Form
  • Mysql优化
  • mysql中InnoDB引擎中页的概念
  • React as a UI Runtime(五、列表)
  • SQLServer之创建显式事务
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 记一次删除Git记录中的大文件的过程
  • 聊聊hikari连接池的leakDetectionThreshold
  • 排序算法之--选择排序
  • 思考 CSS 架构
  • 我这样减少了26.5M Java内存!
  • 用jquery写贪吃蛇
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 怎么将电脑中的声音录制成WAV格式
  • 阿里云重庆大学大数据训练营落地分享
  • 进程与线程(三)——进程/线程间通信
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #每天一道面试题# 什么是MySQL的回表查询
  • (70min)字节暑假实习二面(已挂)
  • (C#)获取字符编码的类
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (七)Java对象在Hibernate持久化层的状态
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (转)【Hibernate总结系列】使用举例
  • (转)http-server应用
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .net core 控制台应用程序读取配置文件app.config
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net 调用php,php 调用.net com组件 --