0

0

手把手教你在浏览器校验HTTPS数字证书

藏色散人

藏色散人

发布时间:2023-01-29 17:07:15

|

6456人浏览过

|

来源于learnku

转载

本篇文章给大家带来了关于HTTPS的相关知识,其中主要介绍了浏览器是怎么校验HTTPS的数字证书 ,以及HTTP协议、相关证书的概念介绍,下面一起来看一下,希望对大家有帮助。

手把手教你在浏览器校验HTTPS数字证书

本文解决的问题如下:

  • 从HTTP协议变成HTTPS协议为何需要证书?
  • HTTPS协议如何体现出安全(HTTPS协议原理)?
  • 如何免费获取HTTPS所需的证书以及如何部署证书到服务器?
  • 浏览器如何验证证书?
  • 证书中包含哪些内容?
  • CA证书和网关证书是一个东西吗?

免费申请证书

免费申请证书网站:https://freessl.cn

  • 域名申请,并解析到服务器

  • 证书与域名绑定

  • 在服务器下载证书部署脚本,并部署

HTTPS原理

从 HTTP 协议栈层面来看,我们可以在 TCP 和 HTTP 之间插入一个安全层,所有经过安全层的数据都会被加密或者解密,

45bff29780f8e34f31292f84c30c846.jpg

于是HTTPS就变成了HTTP和安全层先通信,安全层再和TCP通信。在安全层完成数据的加解密过程。

加密方式:

  • 对称加密,就是双方使用“相同的密钥”,一方加密一方解密。
    • 优点:加解密快
    • 缺点:加密密钥易暴露,安全性低
  • 非对称加密,就是一方使用公钥加密,另一方只能使用私钥解密,公钥和私钥是唯一配对的。
    • 优点:安全
    • 缺点:加解密慢

基于以上特性,传输数据过程采用对称加密方式保证数据传输效率, 用非对称加密方式解决密钥易暴露问题。

c8f4c78f3c62af7f919ba8acd7bae03.jpg

  • 浏览器发起https握手链接时,告知服务器自己支持的“对称加密套件列表” 和 “非对称加密套件列表”以及一个自己生成的“随机数client-random”。

  • 服务器收到请求后,选择自己支持的加密方式告知浏览器,且返回一个“数据数service-random” 和 “服务器的数字证书” 和 颁发给服务器数字证书这个“CA机构本身的数字证书”。

  • 浏览器验证“服务器数字证书”和“CA机构数字证书”的有效性, 验证成功后,再生成一个随机数“pre-master”,并使用“服务器数字证书”中携带的“公钥”对随机数“pre-master”进行加密,发送给服务确认。

  • 服务器利用“服务器数字证书”的“私钥”进行解密,得到随机数“pre-master”, 并响应浏览器已收到。

    Question AI
    Question AI

    一款基于大模型的免费的AI问答助手、总结器、AI搜索引擎

    下载
  • 浏览器把之前自己生成的随机数“client-random”、“pre-master” 以及服务器返回的“service-random” 组合在一起生成一个新的密钥“master secret”, 之后利用新的密钥进行与服务器之间数据的加密。

提问:

  • 服务器上的证书来自哪里?
    向CA机构申请的数字证书, 部署在服务器上时,一般除了CA机构颁发给服务的数字证书(俗称网关证书),还有“CA机构自身的数字证书”。

  • CA机构颁发给服务器的数字证书中包含哪些内容?
    至少包含了向CA机构申请证书时的“组织机构/个人信息”, “证书有效期”、“证书的公钥”、“CA机构给到证书的数字签名”、“CA机构信息”等

  • 服务器上只部署了服务器自己的证书,没有CA机构的数字证书,咋办?
    服务器上没得CA机构的数字证书时,浏览器可以从互联网自动下载,但这样可能拉长首次接口/页面访问的时间,还可能失败。

浏览器如何验证证书

首先, 浏览器利用证书中指定的hash算法对”组织机构的明文信息”计算出信息摘要
然后,利用CA证书的公钥来解密数字证书中的”数字签名”,解密出来的数据也是信息摘要。
最后,判定两个摘要信息是否相等就行。

3cbd35fa19b4696b2a75d9fbcff4326.jpg

如何证明CA证书本身不是伪造的呢?

简单粗暴的方案是:操作系统内置所有CA机构的证书,且假设这个操作系统没有被恶意入侵。

折中方案是:把CA机构分成两类,根CA和中间CA, 我们通常向中间CA申请证书,根CA主要给中间CA做认证用。中间CA又可以给其它中间CA认证,形成树状结构,一级级认证,直到找到根证书。

证书上都有证书链,能找到上一级机构是什么,使用与上一步相同的算法,让上一级机构证实当前证书的真实性,直到追溯到根证书,而根证书只需要在操作系统中可查找到就任务是对的,因为根证书是行业内浏览器和操作系统厂商的规范。

如何检验根证书的合法性?

根证书在安装操作系统时内置了。 内置的根证书,是通过WebTrust国际安全审计认证的,权威证书。

如何验证根证书是否合法,浏览器查找根证书是否存在操作系统里面,若不是则不合法,反之则合法。

WebTrust 是由两大著名注册会计师协会 AICPA(美国注册会计师协会)和 CICA(加拿大注册会计师协会)共同制定的安全审计标准,主要对互联网服务商的系统及业务运作逻辑安全性、保密性等共计七项内容进行近乎严苛的审查和鉴证。 只有通过 WebTrust 国际安全审计认证,根证书才能预装到主流的操作系统,并成为一个可信的认证机构。

自签名证书

自签名的CA证书,需要用户提前内置证书在用户电脑文件中,或者放置在服务器上。
根证书就是一种特殊的自签名证书。 

推荐学习:《HTTP视频教程》                                                    

相关文章

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

8

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

12

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

36

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

5

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

5

2026.01.15

php图片上传教程汇总
php图片上传教程汇总

本专题整合了php图片上传相关教程,阅读专题下面的文章了解更多详细教程。

2

2026.01.15

phpstorm相关教程大全
phpstorm相关教程大全

本专题整合了phpstorm相关教程汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4.6万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 7.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号