SpringBoot——使用http2

news/2024/12/15 17:00:35/文章来源:https://www.cnblogs.com/zjw-blog/p/18608174

使用http2

许多浏览器,包括Edge,仅在TLS(即HTTPS)情况下支持HTTP/2。即使服务器端配置为无TLS支持的HTTP/2,浏览器可能仍将回退到HTTP/1.1。所以我们需要有一个证书来开启https。

生成自签名证书

使用JDK的keytool工具生成自签名证书。

keytool -genkeypair -alias myalias -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore.p12 -validity 3650

-genkeypair 表示生成一对公私钥。

-alias myalias 是你给密钥指定的别名。

-keyalg RSA 指定密钥算法,RSA是最常用的。

-keysize 2048 指定密钥大小。

-storetype PKCS12 指定密钥库类型,PKCS12是推荐的类型。

-keystore keystore.p12 是新密钥库的文件名。

-validity 3650 指定证书的有效期,这里是10年。

这个命令会创建一个有效期为10年的自签名证书。你会被提示输入证书的详细信息,如你的姓名和组织。最重要的是,它会要求你设置一个密钥库密码,你需要记住这个密码,因为配置Spring Boot时会用到。

~\http2\src\main\resources>keytool -genkeypair -alias myalias -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore.p12 -validity 3650
输入密钥库口令:  
再次输入新口令: 
您的名字与姓氏是什么?[Unknown]:  www.xingchen.com
您的组织单位名称是什么?[Unknown]:  IT Department
您的组织名称是什么?[Unknown]:  Xingchen Technology Co., Ltd.
您所在的城市或区域名称是什么?[Unknown]:  Beijing
您所在的省/市/自治区名称是什么?[Unknown]:  Beijing
该单位的双字母国家/地区代码是什么?[Unknown]:  CN
CN=www.xingchen.com, OU=IT Department, O="Xingchen Technology Co., Ltd.", L=Beijing, ST=Beijing, C=CN是否正确?[否]:  是正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 3,650 天):CN=www.xingchen.com, OU=IT Department, O="Xingchen Technology Co., Ltd.", L=Beijing, ST=Beijing, C=CN

配置

创建了证书后,将其放在Spring Boot项目的资源目录下,例如src/main/resources。

然后,在你的application.yml配置文件中添加SSL和HTTP/2的配置:

application.yml

server:port: 8443  # HTTPS服务监听的端口号,默认为443,这里使用了8443,避免与系统端口冲突ssl:key-store: classpath:keystore.p12 # 指向包含服务器私钥和证书的密钥库文件key-store-password: 123456  # 密钥库的密码key-store-type: PKCS12  # 密钥库类型,PKCS12是一种广泛支持的格式key-alias: myalias  # 密钥库中密钥的别名http2:enabled: true # 启用HTTP/2协议,确保使用的服务器支持HTTP/2

测试

在浏览器访问 https://127.0.0.1:8443/ ,打开开发者工具可以看到发起的请求,把协议栏打开可以看到使用的是HTTP/2(h2)。

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

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

相关文章

一文学懂Catboost模型

参考: 深入理解CatBoost - 知乎 20240322-2-Catboost面试题-CSDN博客 ​这次终于彻底理解了 CatBoost 原理及应用 豆包大模型

深度强化学习基础(王树森) 1 基本概念

概率论 随机变量:值取决于随机事件的结果 大写字母\(X\)表示随机变量,小写字母\(x\)表示随机变量的观测值 概率密度函数(Probability Density Function, PDF):随机变量在某个确定的取值点附近的可能性连续 or 离散期望: \(p(x)\)为概率密度函数术语 状态(state) 动作(…

bc 与 hbm 一致性比对

01 引言 使用地平线 征程 6 算法工具链时,算法侧在验证 quantized.bc 精度符合预期后,软件侧反馈 hbm 精度不符合预期,此时应该怎么做呢?(“打一架!”) 对于熟悉地平线算法工具链的用户而言,可能会立刻想到,使用 hb_verifier 工具比对 bc 与 hbm 的一致性即可,so eas…

Python3虚拟机和对象

2024年最推荐的python3版本为3.11 python虚拟机和对象 Python对象和虚拟机_v4.pdf Python虚拟机的原理 • 字节码生成 • 虚拟机运行 Python对象的实现 • 数据结构 • 类型系统 • 内存管理 Python虚拟机字节码和机器码有什么区别 字节码和机器码是计算机程序执行的两种不同形…

Buffer

Buffer(缓冲器)1. 概念 Buffer 是一个类似于数组的 对象 ,用于表示固定长度的字节序列 Buffer 本质是一段内存空间,专门用来处理 二进制数据 。2. 特点 1. Buffer 大小固定且无法调整 2. Buffer 性能较好,可以直接对计算机内存进行操作 3. 每个元素的大小为 1 字节(byte)…

夜莺监控V6版本如何升级到V7

升级目的 为了使用新版本的一些功能特性,故此进行升级。 注意事项 软件升级通常关键三个点:二进制替换 配置文件按照最新的格式调整 数据库表结构所以,在做升级之前,一定要先做好备份,备份的内容对应变更的内容,即:二进制、配置文件、数据库。 升级过程这里演示以二进制…

数据采集与融合综合实践

综合设计——多源异构数据采集与融合应用综合实践这个项目属于哪个课程 2024数据采集与融合技术实践组名 数据"融合炖" 异构 "大杂绘"队项目简介 项目名称:味谱魔法 项目logo: 项目介绍:智能购物菜谱助手是一款结合AI技术的智能化应用,旨在为用户提供…

交易系统:退款单模型设计详解

大家好,我是汤师爷~ 和退款单作为整个交易逆向系统的核心,支撑着售后管理环节。 售后域核心概念模型1、退款单 退款单是记录和跟踪退款处理过程的核心业务单据,包含以下关键信息:租户ID:标识所属商户或组织 退款单ID:退款单的唯一标识 原订单ID:关联的原始订单 业务类型…

DDPM论文解读

Denoising Diffusion Probabilistic Models论文解读DDPM(Denoising Diffusion Probabilistic Models) 论文研究背景扩散概率模型(Denoising Diffusion Probabilistic Models, 简称DDPM)是近年来生成建模领域的重要发展之一。 生成模型的目标是学习数据分布并能够从中采样,…

AtCoder Beginner Contest 384 Solution

AtCoder Beginner Contest 384 (A-E) 题解A - aaaadaa (abc384 A) 题目大意 给个长度为n的字符串,以及两个字母a和b,要求把字符串中不是a的字符全部都变成b。 解题思路 一个循环判断一下就行了。 代码 #include<bits/stdc++.h> using namespace std; int main() {int n…

vs编译cpp时设置排除项

cpp编译排除 一个c++文件不需要被编译但还保留在工程中(阅读),可使用ExcludedFromBuild,有两种方法实现:图形化操作 改vs的项目配置文件图形化操作 在vs的资源管理器选中文件 - 右键 - 属性 - 切到当前的编译配置项(debug/release),有个选项【从生成中排除】,选择为是…

纪念程云大侠

与程云兄的缘份,起始于Delphi大富翁论坛,因 “程云的一堆SQL”而结缘,在论坛发起的第二次(玉渊潭)和第三次(香山)大富翁聚会中逐渐相熟。自2002年5月3日那场坛友初聚起,加上中间各种小聚,至近年来的4年多共事时光,不经意间,二十余载岁月已悄然流逝,往昔匆匆,仿若弹…