springboot支持http2
现在http/3都出来了,但是很多项目还是没有采用https,这个是说不过去的。
http3在2022/06/06 正式发布,具体见https://www.163.com/dy/article/H9BAGF3D0511X1MK.html
2022年6月6日,IETF QUIC和HTTP工作组成员Robin Mark在推特上宣布,历时5年,HTTP/3终于被标准化为 RFC 9114,这是HTTP超文本传输协议的第三个主要版本。
有了这个http3,可以节省一定的资源,有利于环境保护和商业发展。
本文讨论数字证书需要了解的几个疑问。
注:数字证书的基本原理类似,但具体实现和应用场景非常多,无法一一列出。
比较完整的,建议阅读张德明的<<PKI/CA与数字证书技术大全>>,该书还是很值得一读。
一、什么是数字证书
https://baike.baidu.com/item/%E6%95%B0%E5%AD%97%E8%AF%81%E4%B9%A6/326874?fr=aladdin
数字证书这一名词并非是我国原有,而是来自于英文digital certificate的翻译。数字证书从本质上来说是一种电子文档,是由电子商务认证中心(以下简称为CA中心)所颁发的一种较为权威与公正的证书,对电子商务活动有重要影响,例如我们在各种电子商务平台进行购物消费时,必须要在电脑上安装数字证书来确保资金的安全性。 [2]
CA中心采用的是以数字加密技术为核心的数字证书认证技术,通过数字证书,CA中心可以对互联网上所传输的各种信息进行加密、解密、数字签名与签名认证等各种处理,同时也能保障在数字传输的过程中不被不法分子所侵入,或者即使受到侵入也无法查看其中的内容。
如果用户在电子商务的活动过程中安装了数字证书,那么即使其账户或者密码等个人信息被盗取,其账户中的信息与资金安全仍然能得到有效的保障。
数字证书就相当于社会中的身份证,用户在进行电子商务活动时可以通过数字证书来证明自己的身份,并识别对方的身份,在数字证书的应用过程中CA中心具有关键性的作用。
作为第三方机构,必须要保证其具有一定的权威性与公平性,当前阶段我国的CA中心的从业资格是由国家工业与信息化部所颁发,全国范围内只有约50家企业具有数字认证的从业资格。 [2] 数字证书的基本架构是公开密钥PKI,即利用一对密钥实施加密和解密。其中密钥包括私钥和公钥,私钥主要用于签名和解密,由用户自定义,只有用户自己知道;公钥用于签名验证和加密,可被多个用户共享。 [3]
数字证书的基本工作原理主要体现在: [3]
第一,发送方在发送信息前,需先与接收方联系,同时利用公钥加密信息,信息在进行传输的过程当中一直是处于密文状态,包括接收方接收后也是加密的,确保了信息传输的单一性,若信息被窃取或截取,也必须利用接收方的私钥才可解读数据,而无法更改数据,这也有利保障信息的完整性和安全性。 [3]
第二,数字证书的数据签名类似于加密过程,数据在实施加密后,只有接收方才可打开或更改数据信息,并加上自己的签名后再传输至发送方,而接收方的私钥具唯一性和私密性,这也保证了签名的真实性和可靠性,进而保障信息的安全性。 [3]
数字证书有很多格式版本,主要有X.509v3(1997)、X509v4(1997)、X.509v1(1988)等。比较常用的版本是TUTrec.x.509V3,由国际电信联盟制定,内容包括证书序列号、证书有效期和公开密钥等信息。不论是哪一个版本的数字证书,只要获得数字证书,用户就可以将其应用于网络安全中。 [
从外行的角度看,可以简单把证书理解密码,暗号之类的,意思是这个意思。但技术上好比知道原子弹大体原理,但距离怎么制造出来还差个十万八千里。
二、http/2如何使用数字证书
原理大概如下图:
https://www.zhuangpeitu.com/article/13270634.html


网页加密
https://www.cnblogs.com/jing99/p/11687160.html

三、JAVA生成开发用的数字证书
可以使用keytool,例如:
# 生成
# 参数 keyStore指的是证书的文件名称
keytool -genkey -alias http2test -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore spring-rsa-test.p12 -dname "CN=hc.work,OU=LZF,O=HC,l=SH,ST=SH,C=CN" -storepass ziligengsheng
# 删除 (用keytool,不要用操作系统命令)
keytool -delete -alias http2test -keystore spring-rsa-test.p12 -storepass ziligengsheng
四、常见的数字证书颁发机构
国内: 如百度百科说说,国内大约50家,资格则是由 国家工业与信息化部所颁发
国外:Symantec SSL证书、GeoTrust SSL证书、Comodo SSL证书、Thawte SSL证书、RapidSSL证书
此外国内好像也有根证书颁布机构,例如上海CA:
https://baijiahao.baidu.com/s?id=1714683841754180620&wfr=spider&for=pc
近日,上海CA加入由奇安信可信浏览器牵头并联合麒麟、统信两大操作系统共同发起的 “商用密码证书可信计划”,成为国内首批通过奇安信、麒麟、统信联合认证信任的CA厂商,即上海CA的根证书将预置在麒麟操作系统和统信UOS操作系统下的奇安信可信安全浏览器中
我们选择机构的时候,需要考虑:为什么会有那么做的机构,差别是什么?如何选择?
五、中国的数字证书安全
这是一个严重和严肃的问题。哪一天需要独立的时候,看看怎么解决这个问题。国家已经在开始处理这个。
六、springboot2启用http2
springboot是通过容器来实现了,例如tomcat.tomcat9自己就支持http2。
参考:https://www.modb.pro/db/324910
主要两个步骤:
- 使用oracle jdk的keytool 生成 证书
- 配置springboot
注意:这个证书仅仅用于开发,不能用于生产。证书很便宜,这个钱还不怎么够买一双尚未好一点的皮鞋,不要省。
测试环境:windows 11,springboot 2.6.7
整体过程比较简单。
按照上面的做,之后在firefox测试,结果如下图:

springboot支持http2的更多相关文章
- 从零开始搭建支持http2的web服务
前段时间开始,公司各项业务开始陆续接入http2,关于http2的优点与所适用的场景网上有很多的文档可以查阅,这里我主要是总结分享一下如何从0到1搭建http2服务. 这里先说明一下,要完成http2 ...
- curl 支持 http2
让 curl 支持 HTTP2 我们需要安装 nghttp2(http2 的 C 语言库) 源码安装 安装 nghttp2 git clone https://github.com/tatsuhiro ...
- nginx配置支持http2
1.简介 nginx 配置支持http2.目前大多数网站都是http1.1(如果你没有特别配置过的话) 一切都是为了访问更快. 2.如何查看自己网站的http版本 最简单的方法就F12啊,我这里是火狐 ...
- nginx支持HTTP2的配置过程
一.获取安装包 http://zlib.net/zlib-1.2.11.tar.gz https://www.openssl.org/source/openssl-1.0.2e.tar.gz (ope ...
- Openresty支持HTTP2
1. 下载openresty-1.13.6.1.tar.gz和openssl-1.0.2l.tar.gz,并解压 下载对应的软件版本,创建openresty_http2安装路径 2. 安装openre ...
- 支持HTTP2的cURL——基于Alpine的最小化Docker镜像
cURL是我喜欢的开源软件之一.虽然cURL的强大常常被认为是理所当然的,但我真心地认为它值得感谢和尊重.如果我们的工具箱失去了curl,那些需要和网络重度交互的人(我们大多数人都是这样的)将会陷入到 ...
- nginx编译支持HTTP2.0
nginx编译支持HTTP2.0 nginx编译支持HTTP2.0 wget https://www.openssl.org/source/openssl-1.1.0i.tar.gz #openssl ...
- nginx支持http2协议
1.http2协议 HTTP 2.0 的主要目标是改进传输性能,实现低延迟和高吞吐量.从另一方面看,HTTP 的高层协议语义并不会因为这次版本升级而受影响.所有HTTP 首部.值,以及它们的使用场景都 ...
- nginx openssl升级支持http2
阿里云openssl升级,实现nginx主动推送 nginx主动推送能够有效减少不必要的报文传输,减少用户请求次数,以达到更快访问速度 现有版本检查 [root@node3 ~]# openssl v ...
- 轻松让你的nginx服务器支持HTTP2协议
目录 简介 HTTP1.1和HTTP2 安装最新的nginx 开启HTTP2支持 添加SSL支持 修改加密算法 Diffie–Hellman对消息进行加密 重定向所有的HTTP请求到HTTPS 启动n ...
随机推荐
- WPF 基于 .NET 5 框架和 .NET 6 的 SDK 进行完全单文件发布
本文来告诉大家如何基于 .NET 5 框架和 .NET 6 SDK 进行完全单文件发布,这是对 WPF 应用程序进行独立发布,生成的是完全单文件的方法 在之前的版本,尽管也是基于 .NET 5 框架的 ...
- python01-03作业
# 小球落地,一共运动了多少米 hight = 100 # 原始高度 distance = 0 # 和 for i in range(10): # 将 下落 高度加入到 和 中 distance += ...
- 第二讲 Cadence建立工程和元件库
第二讲 Cadence建立工程和元件库 1.创建工程,设置图纸参数.Design Entry CIS / Orcad Capture CIS / Option /Design Template,可以设 ...
- SAP集成技术(一)历史
最近想读一本书<SAP Interface Management Guide>,打算边读边记录一些笔记.翻译主要由ChatGPT完成. 本文链接:https://www.cnblogs.c ...
- 几个ABAP FREE面试问题
Text. Text. Text. Text. Text. 电话面试,有几个问题没有回答上.有些问题是此前完全不了解的,有些是学过但因为好久不用已经忘记.这里试着重新回答一下. 1,如何创建bapi? ...
- 两个List合并,List集合中的对象根据某个相同的属性,合并另外属性
简介 (Introduction): 背景 需要对数据进行拼接,拼接的数据是存在两个不同的表中,但是,拼接后要作为一个对象显示,但是,这样的对象又是多个的. 结构图数据库模型 id name 1008 ...
- 解锁高效创新:IPD策略如何重塑产品开发流程
IPD(集成产品开发)涵盖了产品从创意提出到研发.生产.运营等,包含了产品开发到营销运营的整个过程.围绕产品(或项目)生命周期的过程的管理模式,是一套生产流程,更是时下国际先进的管理体系.IPD(集成 ...
- text/event-stream协议
客户端接收 text/event-stream html <!DOCTYPE html> <html> <head> <meta charset=" ...
- TypeScript入门介绍
目录 TypeScript入门介绍 什么是 TypeScript? 发展历史 优缺点 应用场景 开发工具 环境依赖 编程IDE vs调试 构建工具/工程化 步骤汇总 第一个项目 TypeScript入 ...
- salesforce零基础学习(一百三十九)Admin篇之Begins/Contains/Starts With 是否区分大小写
本篇参考: https://help.salesforce.com/s/articleView?id=sf.customize_functions_begins.htm&type=5 http ...