千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:重庆千锋IT培训  >  技术干货  >  Springboot中如何使用Https协议

Springboot中如何使用Https协议

来源:千锋教育
发布人:lxl
时间: 2023-02-17 14:45:10

  最近一个学生在做项目时碰到了一个特殊的需求,前端浏览器需要存放跨域请求的cookie,需要将cookie的secure属性设置为true。这样一来,就要求后端的接口必须以HTTPS协议提供访问,那么我们该如何在Springboot中使用Https协议呢?是否一定要花钱购买数字证书才可以呢?

  其实如果我们只是在开发和测试阶段,完全可以自定义数字证书,并且通过简单的配置即可让Springboot程序切换为Https协议,接下来九哥就带各位在SpringBoot中实现该功能。

  一. 创建自定义数字证书

  首先我们得创建一个自定义的数字证书,其实在JDK中就提供了现成的工具用于生成数字证书,我们只需打开命令行工具,执行如下代码即可生成一个数字证书。

keytool -genkeypair -alias springboot-https -keypass 123456

-keyalg RSA -keysize 2048 -validity 365

-keystore d:/cert/springboot.keystore

-storepass 123456

  执行结果如下图所示:

1280X1280

  这里会出现一个警告,我们按照提示更改一下证书密钥库的格式即可。

keytool -importkeystore -srckeystore d:/cert/springboot.keystore

-destkeystore d:/cert/springboot.keystore

-deststoretype pkcs12

1280X1280 (1)

  这样我们就将密钥库格式转换为pkcs12格式了,此时得到的密钥库文件如下图所示,其中springboot.keystore就是我们所需要的密钥库文件。

1280X1280 (2)

  二. 配置Springboot

  导入数字证书

  接着我们要将生成的密钥库文件,放入到Springboot工程中的resources目录下,如下图所示:

1280X1280 (3)

  创建yml配置文件

  然后添加如下格式的yml配置信息。

_N]%DK}B4D`6}_[{]@)X%QY

  创建Java测试类

  这里我们可以写一个Java测试类。

~2$5`AJ0V2)N1PR4F6A3BG2

 测试访问

 接下来我们启动程序,并通过默认的8080端口进行访问。

b491cdba-abb2-4127-9728-a4a1b34522f5

  此时我们会发现,当使用http协议访问时,会看到上图所示的错误提示信息,接着我们换成https协议访问。

 

3f9d6a3d-fd81-45e5-9007-639b33ba1b9a

  这里由于数字证书是我们自己生成的,没有CA给我们认证,因此浏览器给出了安全提示,我们只需点击高级按钮,继续前往即可。

71d89c39-5bc2-47f5-b91d-c2f3cf6ae9f3

  我们发现,最终接口就访问成功了。

13dee468-415b-4a6c-9c15-be99ec065c76

  三. 同时支持http协议和https协议

  但在有的项目中,会要求我们同时支持http和https协议,这该怎么实现呢?我们继续往下看。

  配置http端口

  首先我们在yml配置文件中,添加http端口号定义。

http:

port: 8888

  创建配置类

  接着我们在Java配置类中,向IOC容器中添加如下Bean。

RY[8MGM)(E90RH_1BT{B56O

  启动测试

  启动项目时,我们会发现如下日志,Tomcat绑定了两个端口号,其中https绑定在8080,http绑定在8888。

891979cd-7a2c-491e-a11e-795ce0ef5acf

  以Http协议访问会如下图所示,我们发现可以正常访问到接口。

4728e494-7c18-4648-8303-d6cef9ce84c8

  再以Https协议访问会如下图所示,也可以正常访问到接口。

6ee585dc-e2f3-426d-ac93-21d9eeb00ef5

  这样我们就实现了一个项目中同时支持http和https协议,现在你是不是学会了呢?如果你还有什么别的疑问,可以在评论区留言哦。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

java的输入语句—— Scanner类

2023-05-04

java数据库操作常识事务的四大特性

2023-05-04

DML数据操作之增加或删除数据

2023-05-04

最新文章NEW

socket是什么?有什么作用?

2023-05-04

Java常量定义是什么

2023-04-28

一分钟带你学多线程

2023-04-28

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>