现在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. dotnet 使用 FormatterServices 的 GetUninitializedObject 方法在丢失 DLL 情况下能否执行

    在 dotnet 里面,可以使用 FormatterServices 的 GetUninitializedObject 方法可以实现只创建对象,而不调用对象的构造函数方法.而如果在使用此方法时,存在了 ...

  2. 用 C# 写脚本 如何输出文件夹内所有文件名

    大部分在 Windows 下的脚本都是使用 bat 或 cmd 写的,这部分的脚本对我来说可读性不好.这个可读性也是很主观的,对我来说用 C# 写脚本的可读性很强,但是换个小伙伴就不是了.在 .NET ...

  3. vue.js+canvas实现随机验证码

    登录注册啥的,不需要下载插件,上图: 代码: <template> <div class="about"> <p>当前验证码:{{codeStr ...

  4. Mybatis学习三(动态sql语句)

    动态sql语句主要为以下语句 1.动态SQL:if 语句2.动态SQL:if+where 语句3.动态SQL:if+set 语句4.动态SQL:choose(when,otherwise) 语句5.动 ...

  5. S/4 HANA 中的 Email Template

    电子邮件是非常常见的业务需求. SAP 了解这一点,并在 S/4 HANA(cloud和on premise)中引入了非常有趣的功能--Email Template.它将CDS视图和HTML模板结合了 ...

  6. SAP Adobe Form 教程二 表

    本文将介绍一些进阶内容,前文:SAP Adobe Form 教程一 简单示例 方法和对比 使用表对象(Table Object)创建表 优点: 它简单易行. 当我们只有很少的字段单行时,我们可以使用它 ...

  7. 【爬虫+情感判定+Top10高频词+词云图】"乌克兰"油管热评python舆情分析

    目录 一.分析背景 二.整体思路 三.代码讲解 3.1 爬虫采集 3.2 情感判定 3.3 Top10高频词 3.4 词云图 四.得出结论 五.同步视频演示 六.附完整源码 一.分析背景 乌克兰局势这 ...

  8. SqlServer2008R2 在开始菜单中找不到配置管理器

    直接找到C:\Windows\SysWOW64\SQLServerManager10.msc,打开即可.

  9. Github Copilot绑定Jetbrains IDE无效的解决方案

    在Github中进行教育认证后不会自动开通Copilot功能,因此,在进行了Github教育认证之后,在使用之前要进入Github Copilot官网开通Coplilot,如果忽略了这一点,绑定Jet ...

  10. angular打包优化

    打包生产环境时需要的配置如下: 在angular.json里的"configurations"里配置: "configurations": { "pr ...