使用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是否正确?
[否]: y 正在为以下对象生成 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)。

SpringBoot——使用http2的更多相关文章

  1. springboot http2

    转 Spring Boot With Http2 原文链接 http://www.jianshu.com/p/3d7ac535d6a0 拓展链接 http://www.jianshu.com/p/97 ...

  2. SpringBoot标准Properties

    # =================================================================== # COMMON SPRING BOOT PROPERTIE ...

  3. springboot application.properties 常用完整版配置信息

    从springboot官方文档中扒出来的,留存一下以后应该会用到 # ================================================================= ...

  4. java框架之SpringBoot(2)-配置

    规范 SpringBoot 使用一个全局的配置文件,配置文件名固定为 application.properties 或 application.yml .比如我们要配置程序启动使用的端口号,如下: s ...

  5. SpringBoot全局配置文件

    SpringBoot项目使用一个全局的配置文件application.properties或者是application.yml,在resources目录下或者类路径下的/config下,一般我们放到r ...

  6. spring boot http2

    项目已启动的情况下,启动单元测试报端口has binded 可以使用server.port=-1 禁用端口绑定来启动单元测试 https://docs.spring.io/spring-boot/do ...

  7. SpringBoot常用应用程序属性

    参考地址: https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.h ...

  8. http2及server push

      本文主要研究下java9+springboot2+undertow2启用http2及server push maven <parent> <groupId>org.spri ...

  9. SpringBoot嵌入式Tomcat的自动配置原理

    在读本篇文章之前如果你读过这篇文章SpringBoot自动装配原理解析应该会更加轻松 准备工作 我们知道SpringBoot的自动装配的秘密在org.springframework.boot.auto ...

  10. SpringBoot以WAR包部署遇到的坑---集合贴

    ⒈忽略tomcat的context-path 方式一: 停止tomcat服务,删除tomcat安装目录的webapps目录下的ROOT目录,将打成的WAR包重命名为ROOT.war,重启tomcat服 ...

随机推荐

  1. Luogu P2292 HNOI2004 L 语言 题解 [ 紫 ] [ AC 自动机 ] [ 状压 dp ]

    L 语言:很好的一道状压 dp 题. 思路 看到这题,首先可以想到一个很暴力的 dp,设 \(dp_i\) 表示考虑到第 \(i\) 位能否被理解,暴力匹配字符串转移即可. 第一个优化也很显然,暴力匹 ...

  2. NOIp 2024 游记

    要是 T3 T4 挂分就寄了. Day-11 运动会上 vp 了 NOIp2023 和 NOIp2022,NOIp2023 被 T2 硬控了一会,最后口胡的做法感觉可以拿 \(100+100+35+1 ...

  3. SQL技巧:查询某个表关联的所有存储过程

    SQL技巧:查询某个表关联的所有存储过程 关键字:#SQL技巧# 背景 在开发过程中,可能需要更改某一个表的数据结构,或者更新数据.但你又不太清楚会造成什么影响,迟迟不敢下手进行调整.笔者[快乐IT] ...

  4. Ansible - [07] 定义变量的几种方式

    题记部分 Ansible 支持十几种定义变量的方式 Inventory 变量 Host Facts 变量 Register 变量 Playbook 变量 Playbook 提示变量 变量文件 命令行变 ...

  5. SSM - 狂神的项目示例

    出于对狂神的崇拜,总结SSM项目. 基本介绍 项目分层 基本介绍 项目名称:ssmbuild 介绍:通过书籍管理系统实现一个简单的SSM项目,可以作为其他Java Web项目的借鉴. 主要功能模块:查 ...

  6. Twain Capabilities属性

    Asynchronous Device Events 异步设备事件 CAP_DEVICEEVENT MSG_SET选择应用程序希望Twain源报告的事件; MSG_RESET返回Twain源的首选设置 ...

  7. 3. Nginx 命令行参数 & nginx.conf 配置文件的详细说明(附有截图说明)

    3. Nginx 命令行参数 & nginx.conf 配置文件的详细说明(附有截图说明) @ 目录 3. Nginx 命令行参数 & nginx.conf 配置文件的详细说明(附有截 ...

  8. 【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(5)

    1.问题描述: 提供两套标准方案,可根据体验需求选择: 1.地图Picker(地点详情) 用户体验:①展示地图 ②标记地点 ③用户选择已安装地图应用 接入文档:https://developer.hu ...

  9. hexo 图片添加水印(png, jpeg, jpg, gif)

    文章同步发布:https://blog.jijian.link/2020-04-21/hexo-watermark/ 本文折腾 hexo 图片添加水印功能,大部分代码沿用: nodejs 图片添加水印 ...

  10. Apache Tomcat RCE漏洞复现(CVE-2025-24813)

    漏洞描述 该漏洞的核心在于不完整PUT请求上传时 Tomcat 会使用了一个基于用户提供的文件名和路径生成的临时文件,且路径分隔符被替换为 . . 若同时满足以下条件,攻击者可执行任意代码: 默认 S ...