概述
历史
第一版:使用对称加密
第二版:使用非对称加密
第三版:对称加密和非对称加密搭配使用
- pre-master 是经过公钥加密之后传输的,所以黑客无法获取到 pre-master,这样黑客就无法生成密钥,也就保证了黑客无法破解传输过程中的数据了。
第四版:添加数字证书
- 通过引入数字证书,我们就实现了服务器的身份认证功能,这样即便黑客伪造了服务器,但是由于证书是没有办法伪造的,所以依然无法欺骗用户。
数字证书的申请和验证
例子
这里我们结合实际生活中的一个例子,比如你要买房子,首先你需要给房管局提交你买房的材料,包括银行流水、银行证明、身份证等,然后房管局工作人员在验证无误后,会发给你一本盖了章的房产证,房产证上包含了你的名字、身份证号、房产地址、实际面积、公摊面积等信息。
在这个例子中,你之所以能证明房子是你自己的,是因为引进了房管局这个权威机构,并通过这个权威机构给你颁发一个证书:房产证。
申请
-
客户端准备一套私钥和公钥,私钥留着自己使用
-
CA验证信息真实性
-
公司是否存在
-
企业是否合法
-
域名是否归属该企业
-
-
签发认证的数字证书
-
公钥
-
组织信息
-
权威机构称为CA(Certificate Authority)** **的信息
-
有效时间
-
证书序列号
-
CA 生成的签名
通过数字签名来验证是否是该 CA 颁发的
-
免费证书申请地址:
中文:freessl.cn/
验证
-
读取证书明文信息:读取证书中相关的明文信息
-
Hash解密摘要:采用 CA 签名时相同的 Hash 函数来计算并得到信息摘要 A
-
公钥解密摘要:然后再利用对应 CA 的公钥解密签名数据,得到信息摘要 B;
-
对比摘要:对比信息摘要 A 和信息摘要 B,如果一致,则可以确认证书是合法的,即证明了这个服务器是极客时间的;同时浏览器还会验证证书相关的域名信息、有效时间等信息。
参考
《浏览器原理》
更好的阅读地址:HTTPS