SpringBoot如何配置Https访问

SpringBoot添加SSL证书,开启HTTPS(单向认证服务端) SpringBoot项目配置SSL证书,同时开启Http和Https协议,服务器单向认证 阅读详情

众所周知,越来越多的服务在使用https协议进行交互,而对于Java项目来说,使用Spring Boot搭建服务已然是默认的选项,而springboot内置的tomcat容器,默认是使用http协议的,那如何将它转换为https协议?

理论

在我们转换http协议到https协议前,我们先来简单了解下https协议的前世今生。 https是 Hypertext Transfer Protocol Secure 的首字母缩写,是在http协议的基础之上,加入了 SSL/TLS 协议,准确的说法是 TLS1.2 或者 TLS1.3 协议。这里,我们一起看下 SSL/TLS 协议的发展历史:


实践

在我们对 SSL/TLS 协议有了基本了解后,我们下一步,就通过 JDK 自带的工具 keytool 生成一个带有证书的 keystore。

本文演示的JDK版本为17,Spring Boot 版本为3.1.0,其他版本同理。

在使用 keytool 时,其实并不需要死记硬背命令、参数,通过 --help 可以很容易的理解,每个命令需要哪些参数,比如:

而对于诸如 keyalg, storetype 等参数支持的选项,可以查看 JDK 源码或者 Oracle 官方文档: 参数列表,比如 -keyalg 支持的加密算法类型:

接下来,我们执行如下命令生成一个包含私钥的 keystore

batch复制代码keytool -genkeypair -alias springboot -keyalg EC -keysize 256 -validity 365 -keypass 123456 -keystore EC_keystore.jks -storepass 123456 -storetype jks

参数解释:

java复制代码-alias springboot // 指定生成的 keystore 中 entry 也就是证书的别名
-keyalg EC // 指定加密算法,RSA 是大家最常用的,这里使用其它算法演示
-keysize 256 // 指定加密算法的长度,不同算法,对应着不同的长度限制,比如 DSA,长度不能超过2048
-validity 365 // 指定证书的有效期
-keypass 123456 // 指定证书的密码
-keystore EC_keystore.jks // 指定 keystore 文件名,默认路径就是执行命令行的当前路径
-storepass 123456 // 指定 keystore 的密码
-storetype jks // 指定 keystore 的类型

在我们生成 keystore 的过程中,keytool 会根据参数做提示,比如:

Warning:JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore EC_keystore.jks -destkeystore EC_keystore.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

所以我们可以根据建议,做适当调整。


keystore 有了之后,将其拷贝到 springboot 项目中,并在启动的日志中,观察到,springboot 已经成功加载了 keystore:

打开浏览器,访问 rest url,我们可以看到,浏览器已经对我们的请求地址进行了拦截,并告知不安全的地址,因为这个证书是我们通过keytool自签名生成的,并不是浏览器认可的CA:

点击 Processeds,就可以看到服务端的返回数据了。

总结

其实将springboot配置成https的方式很简单,重点是其背后的 SSL/TLS 协议,涉及到的对称加密、非对称加密、证书、CA,在下一篇中,我们将通过 wireshark,对基于 https 协议的交互进行抓包,来了解针对 https 请求,tcp 都做了什么。

Spirng Boot之HTTPS配置 Spring Boot之HTTPS配置 阅读详情

相关推荐

SpringBoot配置Https和Http访问,Tomcat配置Https访问

为了满足客户的需求, 首先cmd进入jdk的bin目录 keytool -genkey -v -alias testKey -keyalg RSA -validity 3650 -keystore C:\jdk证书\test.keystore 生成好之后把生成好的文件复制到resources目录下 application.properties #是否开启缓存,开发时可以设置为 false,默认为 true spring.thymeleaf.cache=false #检查模版是否存在,默认为 true

aaaaaaddddsssss的博客 411

Spring boot使用https协议

spring boot 启用https协议

demon7552003的小本本 5380

【Spring】配置SpringBoot同时支持http和https访问

配置https访问 生成证书 如果配置了JAVA开发环境,可以使用keytool命令生成证书。我们打开控制台,输入: keytool -genkey -alias tomcat -dname "CN=Andy,OU=kfit,O=kfit,L=HaiDian,ST=BeiJing,C=CN" -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 365 输入后会提示输入密码,这个密码在下面配置文件有用到。

九师兄 6760

SpringBoot配置https

为什么要把网站转为https? https是网络数据传输协议,也就是说www的网站在传输数据的时候,都必须遵守这个协议,遵守统一的标准的协议,有利于数据更好的传送,而https则可以理解为是http的升级版或者安全版本。 https的优点如下: 1、部署https的网站更安全。 http是明文传送数据,不安全。也就是说,在传送数据的时候是明文的,没有经过加密,如果黑客一旦截获了这种明文数据,用户的隐私就很有可能暴露,如:账号、密码等。而https在传送数据的时候会对数据进行加密,就算黑客截获了数据也是加密后

qq_51218646的博客 6793

基于UCD3138的数字控制硬开关全桥DC-DC电源设计实战解析

在开关电源设计中,数字控制技术正逐步取代传统模拟方案,以其卓越的灵活性、可编程性和强大的数据处理能力,成为应对复杂动态响应与智能化需求的关键。其核心原理在于通过高精度模数转换器(ADC)实时采样电压、电流信号,经由数字信号处理器(如ARM内核)运行PID等控制算法,动态调整数字脉宽调制(DPWM)输出,从而实现对功率级的精确控制。这种技术价值体现在能够轻松实现高级算法(如输入电压前馈、非线性补偿)、灵活配置保护参数,并通过PMBus等接口实现智能化监控与管理。其典型应用场景包括通信基站、服务器电源以及工业设

1313

KALI虚拟机挂代理教程

需要你本地挂了代理,然后通过虚拟机连接本机代理端口,不说废话了,直接说怎么做了。 1.查看选项设置中自己的小飞机的本地端口是多少:(默认是1080) 2.本机win+r打开cmd,输入ipconfig查看本地ip,我的本地ip是192.168.0.107: 2.打开kali虚拟机,编辑ProxyChains配置文件: vi /etc/proxychains.conf 3.在文件末尾的ProxyList中添加物理机本地ip和1080端口作为代理地址: 4.保存并退出即可: esc :wq 回车 5.

qq_34853514的博客 3万+

SpringBoot2.x配置HTTPS访问

SpringBoot2.x配置HTTPS访问,总体上可以分为两大步:一.生成SSL证书;二.配置HTTPS访问。 一.生成SSL证书 取得SSL证书的方法有:(1)阿里云购买免费的ssl证书 (2)用命令生成ssl证书 因为在阿里云购买后需要填写域名,所以这里选择第(2)种方式:用命令生成ssl证书 1.新建一个证书目录,例如D:\sslca, 打开cmd命令窗口,切换到D:\s...

大头皮鞋的博客 1万+

yolov8 转华为昇腾om脚本

yolov8 转华为昇腾om脚本

jacke121的专栏 1602

springboot配置https访问

1.首先去腾讯云或者阿里云申请免费ssl证书,以腾讯云为例,不建议自己生成,因为没办法测试发布环境的效果,填写个人信息,最后提示审核中才是申请成功,审核比较快,半小时就通过了。 2.下载已经通过审核的证书文件夹,解压文件如下,根据项目选择使用, 3.因为springboot使用的是内置tomcat,所以我这边选择tomcat文件,在resources目录下导入xxx.jks 4....

baidu_37302589的博客 2万+

【数据结构】期末考试复习(考点+例题)

1.线性表定义及其存储实现:顺序表和链接表,优缺点分析(顺序存储可随 机访问,链式存储可灵活利用空间),相关操作的时间复杂度。 2.链表的插入删除操作 3.两种特殊的线性表及其应用:栈、队列 4.栈、队列上的(插入/删除)操作及其特点 5.循环队列满和空的条件 6.能够定义线性表、栈、队列的数据存储结构,能够实现相关操作的算法并 分析时间复杂度(例如插入、删除及其它应用等) 7.理解线性结构的应用( 如根据要求能灵活定义线性表结构,能根据线性表 的插入、删除操作解决实际问题) 二叉树基本概念与性质(高

Molly 的博客 9373

【Claude Code 源码解析教程】总体大纲

本教程旨在深入解析 Anthropic Claude Code 项目的源码架构和实现细节。Claude Code 是一个基于 TypeScript + Bun 构建的 AI 编程助手 CLI 工具,代号 "Tengu",具有复杂的多模块架构和丰富的功能特性。本教程基于Claude Code 的源码分析来生成,将帮助您全面掌握 Claude Code 的源码架构和实现细节,为开发类似 AI 编程助手工具奠定坚实基础。

rengang66的博客 388

Springboot配置https访问

介绍 该篇博文主要介绍如何配置Springboot使其打包部署的服务必须通过HTTPS协议才可访问,仅供内部研究使用。 生成https证书 要使用https,首先需要ssl证书,获取SSL证书有两种方式: 自己通过keytool生成 通过证书授权机构购买 这里本地测试使用,通过keytool生成,方式如下 C:\Users\feifuzeng>keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -ke ysize 2048

My Blog My Style 482

【系统架构设计师】预测试卷一:综合知识(75道选择题)

软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式,架构风格反映领域中众多系统所共有的结构和 (48),强调对架构(49)的重用。 (48) A. 语义特性 B. 功能需求 C. 质量属性 D. 业务规则 (49) A. 分析 B. 设计 C.实现

数据知道的博客 7767

Springboot工程配置https访问

Springboot工程配置https安全访问

C_0010的博客 1829

YOLO+OpenCV强强联手:高精度跌倒检测技术实战解析

(0, 1), (0, 2), (1, 3), (2, 4), # 脖子和头部(3, 5), (5, 6), (5, 7), (7, 9), (5,11),# 左臂(4,6), (6, 12), (6,8) ,(8,10),# 右臂(11, 12), (11, 13), (13, 15), #左腿(12, 14), (14, 16) #右腿keypoints是检测到的人体关键点数据,frame是图像帧,boxes是检测到的边界框信息。定义了人体关键点之间的连接关系,用于绘制人体骨架。

yolo模型训练找我,AI游戏合作找我 2319

论文阅读:arixv 2025 Poisoning Attacks on LLMs Require a Near-constant Number of Poison Samples

研究者做了目前最大规模的“投毒实验”,训练了从6亿参数到130亿参数的模型(覆盖了中小到大型LLM),用的训练数据量也是“最适合模型大小”的(按行业里的“Chinchilla法则”,模型越大,训练数据量也按比例增加)。总结下来就是:这篇论文告诉我们,给大语言模型投毒,比之前想的容易得多——不需要海量毒数据,只要几百条藏好后门的文档,就能让大模型“带毒工作”,而且平时还看不出来。——这比之前大家担心的“需要投毒数据占训练集一定比例”要可怕得多,因为对大模型来说,“固定数量”的毒数据更容易偷偷塞进去。

CSPhD-winston的博客 1081

SpringBoot配置Https访问

程序新视界:一个“软实力”、“硬技术”同步成长的平台。Https在网站中的使用不断的在普及,它不仅能够增加网站的安全性,甚至连搜索引擎都会对支持Https的网站进行区别对待。但购买Htt...

u010821757的博客 1145

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SpringBoot配置HTTPS,并实现HTTP访问自动转HTTPS访问

今天用springboot写了个微信小程序支付的demo,小程序的调用要用https协议,通过frp配置了https 内网穿透,本地需要使用https 进行映射,故查询了相关资料,配置了https访问 1.使用jdk自带的 keytools 创建证书 打开cmd窗口,输入如下命令 keytool -genkey -alias tomcat -keyalg RSA -keystore ./s...

Majker的专栏 1702

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

springboot配置https和java访问https

使用 keytool -genkeypair -alias myhttps -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:\dainxinapp\cer.keystore -storepass 123456生成证书,将证书复制到resources下配置文件这样所有请求就变成https了如果想即支持http,也支持https需要额外配置一个连接器这样既可以使用http也可以用https访问服务了。

wste3567的博客 1045

Spring Boot 配置 HTTPS 访问

Spring Boot 配置 HTTPS 访问 相关代码 生成证书 创建新证书 keytool -genkeypair -alias hellowood -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore hellowood.p12 -validity 3650 输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? [Unk...

啦啦啦啦 la 2万+

Nginx+SpringBoot配置SSL证书,实现https访问

今天公司的域名备案成功,着手开始配置项目的管理平台用域名访问,并且要使用HTTPS。 我们的项目是SpringBoot,大概的看了看SpringBoot配置起来好像也不是很方便。 因此就折中选择了Nginx做服务器,转发到Java项目,公司的服务器运维一直是自己做着,对Nginx 的基本用法和配置还是很熟悉的。 第一步,安装Nginx 可以参考我的另一篇 手把手带你在Linux centos7环境下安装Nginx 包括https开机自启等 第二步,申请SSL证书 HTTPS需要SSL证书,SSL证书的申请

不会吉他的肌肉男不是好的挨踢男的专栏 2630

关于如何给你的springboot项目配置ssl证书、https访问;

关于如何给你的springboot项目配置ssl证书、https访问; 第一步:申请证书 这里以阿里云为例,登录阿里云账户进入SSL证书(应用安全) 根据步骤进行操作;下面是申请下来的证书(注意签发状态:一般5分钟左右就可以签发下来): 点击下载(因为我是springboot项目,所以初步选择了下图的内容) 第二部:部署证书 解压下载下来的文件 将“.jks”部署到resources文件加下面(注意看下图结构) 配置“application.properties”文件,代码如下: server.p

weixin_43496408的博客 2313
上一篇: 一条Update语句的执行过程是怎样的?
下一篇: 95% 的算法都是基于这 6 种算法思想
程序员职业指南
博客等级 码龄4年 2138粉丝 960原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值