现在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

主要两个步骤:

  1. 使用oracle jdk的keytool 生成 证书
  2. 配置springboot

注意:这个证书仅仅用于开发,不能用于生产。证书很便宜,这个钱还不怎么够买一双尚未好一点的皮鞋,不要省。

测试环境:windows 11,springboot 2.6.7

整体过程比较简单。

按照上面的做,之后在firefox测试,结果如下图:

springboot支持http2的更多相关文章

  1. 从零开始搭建支持http2的web服务

    前段时间开始,公司各项业务开始陆续接入http2,关于http2的优点与所适用的场景网上有很多的文档可以查阅,这里我主要是总结分享一下如何从0到1搭建http2服务. 这里先说明一下,要完成http2 ...

  2. curl 支持 http2

    让 curl 支持 HTTP2 我们需要安装 nghttp2(http2 的 C 语言库) 源码安装 安装 nghttp2 git clone https://github.com/tatsuhiro ...

  3. nginx配置支持http2

    1.简介 nginx 配置支持http2.目前大多数网站都是http1.1(如果你没有特别配置过的话) 一切都是为了访问更快. 2.如何查看自己网站的http版本 最简单的方法就F12啊,我这里是火狐 ...

  4. nginx支持HTTP2的配置过程

    一.获取安装包 http://zlib.net/zlib-1.2.11.tar.gz https://www.openssl.org/source/openssl-1.0.2e.tar.gz (ope ...

  5. Openresty支持HTTP2

    1. 下载openresty-1.13.6.1.tar.gz和openssl-1.0.2l.tar.gz,并解压 下载对应的软件版本,创建openresty_http2安装路径 2. 安装openre ...

  6. 支持HTTP2的cURL——基于Alpine的最小化Docker镜像

    cURL是我喜欢的开源软件之一.虽然cURL的强大常常被认为是理所当然的,但我真心地认为它值得感谢和尊重.如果我们的工具箱失去了curl,那些需要和网络重度交互的人(我们大多数人都是这样的)将会陷入到 ...

  7. nginx编译支持HTTP2.0

    nginx编译支持HTTP2.0 nginx编译支持HTTP2.0 wget https://www.openssl.org/source/openssl-1.1.0i.tar.gz #openssl ...

  8. nginx支持http2协议

    1.http2协议 HTTP 2.0 的主要目标是改进传输性能,实现低延迟和高吞吐量.从另一方面看,HTTP 的高层协议语义并不会因为这次版本升级而受影响.所有HTTP 首部.值,以及它们的使用场景都 ...

  9. nginx openssl升级支持http2

    阿里云openssl升级,实现nginx主动推送 nginx主动推送能够有效减少不必要的报文传输,减少用户请求次数,以达到更快访问速度 现有版本检查 [root@node3 ~]# openssl v ...

  10. 轻松让你的nginx服务器支持HTTP2协议

    目录 简介 HTTP1.1和HTTP2 安装最新的nginx 开启HTTP2支持 添加SSL支持 修改加密算法 Diffie–Hellman对消息进行加密 重定向所有的HTTP请求到HTTPS 启动n ...

随机推荐

  1. "友链"

    欢迎来到我的友链小屋 展示本站所有友情站点,排列不分先后,均匀打乱算法随机渲染的喔!   友链信息 博客名称:麋鹿鲁哟博客网址:https://www.cnblogs.com/miluluyo/博客头 ...

  2. IIS 部署 docsify

    来源:https://www.cnblogs.com/yokeqi/p/14276176.html 来源:https://sspai.com/post/60534 docsify之前部署在Linux+ ...

  3. 一个现代化轻量级的跨平台Redis桌面客户端

    大家好,我是 Java陈序员. Redis 作为一款高性能的非关系型数据库,可是深受开发者的喜爱,无论是什么开发,都能看到 Redis 的身影. 今天,给大家介绍一款跨平台的 Redis 客户端连接工 ...

  4. validator库在gin中的使用

    目录 封装语言包翻译器 tag中设置验证规则 控制层验 curl请求 返回结果 封装语言包翻译器 package validator import ( "fmt" "ne ...

  5. postgresql数据库清理

    大量update或者delete后 磁盘空间会猛增.原理是postgresql并没有真正的删除 只是将删除数据的状态置为已删除,该空间不能记录被从新使用.若是删除的记录位于表的末端,其所占用的空间将会 ...

  6. postgresql性能优化3:分区表

    一.分区表产生的背景 随着使用时间的增加,数据库中的数据量也不断增加,因此数据库查询越来越慢. 加速数据库的方法很多,如添加特定的索引,将日志目录换到单独的磁盘分区,调整数据库引擎的参数等.这些方法都 ...

  7. ClipBord 复制 Html winform

    剪贴板针对不同的数据格式,在组织剪贴板内容时,有不同的格式要求.最简单的是,复制一般的.txt文本内容.使用方法 ClipBord.Clear(); ClipBord.SetText(str); 复制 ...

  8. CSS——2D转换

  9. CSS操作——display属性

    display可以指定元素的显示模式,它可以把行内元素修改成块状元素,也可以把别的模式的元素改成行内元素.diisplay常用的值有四个. 语法: /* display: block; // 声明当前 ...

  10. 解决老旧电脑在win7中浏览器访问https网站出现的Let‘sEncrypt证书过期的问题

    原因LetsEncrypt证书未过期,但是其顶级ca根证书 "DST Root CA X3"在2021-09-01过期了,老旧设备上的win系统会被影响到. 解决步骤下载三张Let ...