考哪些证书国家有补贴_提交书证申请书范本

考哪些证书国家有补贴_提交书证申请书范本当下的互联网应用如果是外网访问,一般都是https方式访问,需申请https证书目录Whyhttps?Whatishttps?Howtocreatehttps?Whyhttps?http明文传输不安全,因此需要进行加密处理,加密后端http就是httpsWhatishttps?https涉及很多概念,对称非对称加密、CA、数字签名、证书等等。有兴趣查看这里漫画解说https这里简要总结:A(客户端浏览器)——通过https://www.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

当下的互联网应用如果是外网访问,一般都是https方式访问,需申请https证书

Why https ?

http 明文传输不安全,因此需要进行加密处理,加密后端http就是https

What is https?

https 涉及很多概念,对称非对称加密 、CA、 数字签名、 证书 等等。

有兴趣查看 这里漫画解说https 这个只能快速了解https大致原理。
建议查看 https加密原理 https://www.jianshu.com/p/cf2f86bc597a ,内容比较多比较细,但很多点讲解到位。

这里简要总结:
A (客户端浏览器) ——通过 https://www.xxx.com 访问——> B(服务端网站)

1. A 通过浏览器访问 B 服务端443端口,并随身携带如下信息一并传递给B

携带项 说明
随机数1 最后用于生成AB之间对称加密的密钥
自己支持的 SSL 版本号 比如TLS 2.0版
自己支持的 加密算法 对称加密和非对称加密
支持的压缩算法

2. B 收到A发来的携带信息,B 将做如下几件事情:

事件项 说明
确认使用的加密通信协议版本 比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致,服务器关闭加密通信
将生成一个随机数2发给A 最后用于生成AB之间对称加密的密钥
确认使用的加密方法 比如RSA公钥加密
将https证书(Certificate)发给A 该证书从CA(全球权威证书颁布机构)申请
支持的一些SSL/TLS扩展

————->>>>> 关键问题1:B 的证书哪里来的?
答案是从CA(权威证书颁布机构)申请的,CA颁发给B的证书中包含了如下信息:

包含项 说明
颁发机构 例如是 Let’s Encrypt
B的域名 www.xxx.com
证书有效期 有效期 从 yyyy-MM-dd 到 yyyy-MM-dd
经过CA私钥加密后的B的公钥 A需要通过CA的公钥解密才能最终获得B的公钥
经过CA私钥加密后的数字签名 数字签名 是A用来验证该证书是否合法是否被篡改等

3. A 收到 B 发来的https证书,将验证证书的合法性

————->>>>> 关键问题2:A 浏览器如何校验 https证书的有效性 ?

	
	(1) 浏览器内置了各大颁发机构的公钥,通过证书中的颁发机构找到对应的【CA公钥】
	
	(2) 浏览器用【CA公钥】解密CA私钥加密后的数字签名得到 【密文信息1】
	这里说明一下 【密文信息1】是CA对【B的公钥】【B的域名】等信息整合在一起,进行数字摘要算法(例如MD5算法) 所获得的。
	       
	(3) 浏览器用【CA公钥】解密CA私钥加密后的B的公钥得到 【B的公钥】
	
	(4) 浏览器用和CA相同的数字摘要算法对【B的公钥】【B的公钥】【B的域名】等信息进行相同的数字摘要 从而生成【密文信息2】
	
	(5) 对比【密文信息1】 和  【密文信息2】是否一致
    一致则验证通过,否则失败,证书不可信。另外浏览器还会校验证书的有效时间和域名匹配等。

4. A 验证证书合法后,将下面的信息发给B

发送项 说明
随机数3 用【B的公钥】加密,防止被窃听 , 该随机数也是用于AB之间对称加密的密钥
编码改变通知 表示随后的信息都将用双方商定的加密方法和密钥发送
握手结束通知 表示客户端的握手阶段已经结束

5. B 得到 A 发过来的信息做最后的回应

发送项 说明
用B的私钥解密A发来的加密随机数3 此时 A 和 B 同时具备了 上面步骤中的 3个随机数,按照编码改变通知指示生成一个对称加密密钥(例如 DES AES等)
生成一个 New Session Ticket 类似于sessionId AB之间不可能每次都认证加密解密,因此一段时间内同一个 Session Ticket 下将不再进行重复的认证过程
服务端传输改变通知 表示知晓加密方式,加密密钥,准备开始传输报文
服务端发送第一个加密报文

. ————->>>>> 关键问题3: A如何生成对称加密的密钥 ? 如何发给B ?
问题 1 答案
根据上面的流程1、2、4 可知A不是只简单生成一个随机数发给B,
而是集三次随机数(A 发送2个随机数给 B,B发送1个随机数给A)于一体,通过协商的一致算法生成一个对称加密的密钥进行通信。

这里的对称加密密钥生成算法比较复杂一些,不是我们通常认知以为就是一个简单的随机数,具体查看相关文档,这里只做简单记录。

问题 2 答案
对称加密密钥不用发给B,A和B都有了相同的三个随机数,A和B 都会用DH算法计算出一个master secret,这个master secret就是对称加密密钥。

一片不错的文章参考: https://blog.csdn.net/qq_31442743/article/details/116199453

以上步骤中,黑客想要中间截胡伪造B的证书给A是几乎不可能的,因为无法获得CA的私钥
A浏览器只会用CA的公钥对证书解密获得签名信息,验证域名,比对签名信息,验证有效期等
如果A非要使用非权威机构CA颁发的证书,那就没办法保证安全了,浏览器一般标红或阻止访问没有经过权威机构CA颁发的证书的网站。

How to create https ?

要想http 访问方式变成 https 网上流程说明很多,总结一下主流步骤:

  1. 准备好经过认证后的域名
  2. 去权威网站(如 Let’s Encrypt 或各云平台)申请域名对应的https证书
  3. 配置你的应用服务器(如nginx)将获得的https证书文件集成到应用中
  4. 配置监听443端口,重启应用服务器,刷新浏览器

这里说明一下,之前说的什么生成CSR文件然后去CA怎么怎么搞的都老土了!
CSR即证书请求文件, 就是根据提供的公钥私钥,一堆公司地址信息等,到CA申请证书一般很多卖https证书的网站都一套连搞定了!

例如在nginx中配置相关信息,类似于下面【server】区域的配置:


    # HTTPS server
    #
    server { 
   
        listen       443 ssl http2;
        server_name  www.xxxxx.com;

        ssl_certificate /apps/nginx/fullchain.crt;
        ssl_certificate_key /apps/nginx/private.pem;
        ssl_protocols TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;

        location / { 
   
	          root   /apps/nginx/html;
	          index  index.html index.htm;
        }
        

其中的 :

        ...
        ssl_certificate /apps/nginx/fullchain.crt;
        ssl_certificate_key /apps/nginx/private.pem;
        ...

里面有 fullchain.crt; private.pem; 这两个文件,这到底是什么? 还有一般云平台 提示私钥格式不正确,请提供RSA格式的证书错误是怎么回事?
在这里插入图片描述

这里先列出 一般免费https证书 网站 申请通过后,下载下来的压缩包中的文件种类说明:

文件 说明
private.pem 私钥,可更改后缀为key
fullchain.crt 包含了公钥的CA证书,可更改后缀为pem
certificate.pfx IIS和Tomcat使用,秘钥在detail.txt中
certificate.crt 域名证书,一般不用

SSL/TLS 小知识点:

SSL/TLS  是一种安全加密协议, TLS是SSL的标准化、升级版本(SSL存在一些缺陷)

SSL目前有三个版本,SSL1.0、SSL2.0、SSL3.0,因其存在严重的安全问题,大多数公司目前均已不在使用了。

TLS目前也有三个版本,TLS1.0、TLS1.1、TLS1.2,TLS目前只是草案,并未面世,目前常用的为TLS1.2,server配置通常三个版本均支持

报 “xxxRSA格式的文件xxx”错误时没有弄明白 RSA 几种加密形式
其实就是 RSA私钥格式PKCS1和PKCS8之间的相互转换

参看 https://www.jianshu.com/p/08e41304edab

一般 PKCS1格式文件内容如下:

-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC5BW6T9GVaaG/epGDjPpY3wN0DrBt+NojvxkEgpUdOAxgAepqe
GbSqtXAd+MOOBbHxIOEwrFC9stkypQgxrB49tXDI+4Jj8MuKI15HEmI8k7+tRDOl
J5TFSL2J9KA3GuQbyVAhlpxl+YnV7yjxP9l1dkbApg1ixSd5KOPbaQ00WQIDAQAB
AoGAYiqzpOTC8dj/og1tKqUGZsZ5fX1PiQO+XBnAbGXFE2sozPhAGSpiZUCnH//h
IfV7mAht8rk6java+bf+RPyhfg0zW7oXy0pm8DwoW7+0fOzQ4sEYeoqza/VrkYwR
5BxBa+KyT1HCi4uXogyDlQT1p0ZT0iaqZBfTApdyVkmcQEECQQDhfPl+ILl0bh0H
8ORoMmmxAZMn293+de441OlAjL3CsF4yhUUdavAYWM0RAV5MJtKUTR4ZpRXkB/pq
kgyTxpr9AkEA0g6pQRpcGxulr2758ZlOLdL8B1n1ubre464IKQ0zNfERKhR/j7U8
LGF+3mhZuoSEdklwLCJ8ZMvIhkV0v8JjjQJBANtqXOyas1vUenNruRabV7ViLuuu
S0p9Px4WMBMb4Ns9+6t1e1ew44kNgB54EmZPsMGWeR/DQJXwHYDuNUbnD5ECQA7S
Gf8N7RG8kaQfIGN7fZieGkoqfrvsA23tCYZb+BEGQT/G0nlBQE2hU2I92pbeYro1
1ERI6p3yAuP2YpZlEMECQGNzhqshYfDiWwU4Q3aZWkRrv74uIXk1HQoFH1BthzQJ
TbzKH/LEqZN8WVau3bf41yAx2YoaOsIJJtOUTYcfh14=
-----END RSA PRIVATE KEY-----

一般 PKCS8格式文件内容如下:


-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALkFbpP0ZVpob96k
YOM+ljfA3QOsG342iO/GQSClR04DGAB6mp4ZtKq1cB34w44FsfEg4TCsUL2y2TKl
CDGsHj21cMj7gmPwy4ojXkcSYjyTv61EM6UnlMVIvYn0oDca5BvJUCGWnGX5idXv
KPE/2XV2RsCmDWLFJ3ko49tpDTRZAgMBAAECgYBiKrOk5MLx2P+iDW0qpQZmxnl9
fU+JA75cGcBsZcUTayjM+EAZKmJlQKcf/+Eh9XuYCG3yuTqNq9r5t/5E/KF+DTNb
uhfLSmbwPChbv7R87NDiwRh6irNr9WuRjBHkHEFr4rJPUcKLi5eiDIOVBPWnRlPS
JqpkF9MCl3JWSZxAQQJBAOF8+X4guXRuHQfw5GgyabEBkyfb3f517jjU6UCMvcKw
XjKFRR1q8BhYzREBXkwm0pRNHhmlFeQH+mqSDJPGmv0CQQDSDqlBGlwbG6Wvbvnx
mU4t0vwHWfW5ut7jrggpDTM18REqFH+PtTwsYX7eaFm6hIR2SXAsInxky8iGRXS/
wmONAkEA22pc7JqzW9R6c2u5FptXtWIu665LSn0/HhYwExvg2z37q3V7V7DjiQ2A
HngSZk+wwZZ5H8NAlfAdgO41RucPkQJADtIZ/w3tEbyRpB8gY3t9mJ4aSip+u+wD
be0Jhlv4EQZBP8bSeUFATaFTYj3alt5iujXUREjqnfIC4/ZilmUQwQJAY3OGqyFh
8OJbBThDdplaRGu/vi4heTUdCgUfUG2HNAlNvMof8sSpk3xZVq7dt/jXIDHZiho6
wgkm05RNhx+HXg==
-----END PRIVATE KEY-----

PKCS1/8 小知识点:

借用网上的评论:
通俗点讲吧,PKCS1是标准RSA秘钥对标准规范,但是都是裸奔的;

PKCS8是对加密后的秘钥进行了描述,就是说P8格式的秘钥不是裸奔了
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187078.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python解析xps文件_xps文件的基本操作

    python解析xps文件_xps文件的基本操作最近一直研究XPS文件,目前已经解决了二进制流转XPS文件、XPS文件转二进流、XPS文件的解析、XPS文件转图片、XPS文件打印等。但是一直没有找到如何向xps文件中插入图片的方法,好烦恼啊!!!!如果那位大神有向xps文件中插入图片的方法请及时联系我谢谢,QQ470163177。本人研究的成果如下,需要的码友可以学习下。注意:xps命名空间在ReachFramework.dll中using…

  • Java学习之JDBC篇

    Java学习之JDBC篇0x00前言在一些web开发或者是数据存储的时候,肯定会使用到数据库来进行数据存储。而在Java里面需要调用JDBC来对数据库进行操作。0x01JDBC概念Jav

    2021年12月12日
  • 傅里叶变换公式整理

    傅里叶变换公式整理1、一维傅里叶变换1.1一维连续傅里叶变换正变换:F(ω)=∫−∞∞f(t)⋅e−iωtdtF(\omega)=\int_{-\infty}^{\infty}f(t)\cdote^{-i\omegat}dtF(ω)=∫−∞∞​f(t)⋅e−iωtdt逆变换:f(t)=∫−∞∞F(ω)⋅eiωtdωf(t)=\int_{-\infty}^{\infty}F(\o…

  • Cubieboard2开发要点简记

    Cubieboard2开发要点简记要在Cubieboard2上开发四轴飞行器的控制模块,需要编写远程控制的接收端和底层控制模块。换言之需要编写用户层client软件和driver,本人负责单片机模块,此文是跟踪笔记,权当参考和提醒。值得声明的是,由于嵌入式平台的平台相关性很大,相关操作不一定可以完全再现。学习资料主要参考论坛——————————————————————————————2013年12月23号14点

  • RSA加密算法Python实现

    RSA加密算法Python实现RSA加密算法Python实现RSA加密算法是目前使用最广泛的加密方式,具体流程见RSA加密算法之前想过用C语言实现,但是由于C语言对整型的位宽有要求,RSA加密算法中需要使用的数字大小远远超出C语言中longlongint的最大值,最近学习了Python之后,发现Python没有这一要求,可以较容易的实现。以下模拟中只能输入数字,因为实际过程中所有文字信息都被转化成Unicode数字码传输,代码中没有做转化这一步,只模拟算法。fromrandomimportrandintfromd

  • yourphp常用标签

    yourphp常用标签

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号