Https CA认证图解

http通信存在的问题

容易被监听 http通信都是明文,数据在客户端与服务器通信过程中,任何一点都可    能被劫持。比如,发送了银行卡号和密码,hacker劫取到数据,就能看到卡号和密码,这是很危险的
被伪装 http通信时,无法保证通行双方是合法的,通信方可能是伪装的。比如你请求www.taobao.com,你怎么知道返回的数据就是来自淘宝,中间人可能返回数据伪装成淘宝。
被篡改 hacker中间篡改数据后,接收方并不知道数据已经被更改共享密钥加密和公开密钥加密
**后续内容的需要,这里插播一段共享密钥加密和公开密钥加密**共享密钥加密 共享密钥的加密密钥和解密密钥是相同的,所以又称为对称密钥公开密钥加密
加密算法是公开的,密钥是保密的。公开密钥分为私有密钥和公有密钥,公有密钥是公开的,任何人(客户端)都可以获取,客户端使用公有密 钥加密数据,服务端用私有密钥解密数据。
异同
共享密钥加密与公开密钥加密相比,加解密处理速度快,但公开密钥更适应互联网下使用
https解决的问题
https很好的解决了http的三个缺点(被监听、被篡改、被伪装),https不是一种新的协议,它是  http+SSL(TLS)的结合体,SSL是一种独立协议,所以其它协议比如smtp等也可以跟ssl结合。https改变了通信方式,它由以前的http—–>tcp,改为http——>SSL—–>tcp;https采用了共享密钥加密+公开密钥加密的方式防监听 数据是加密的,所以监听得到的数据是密文,hacker看不懂。
防伪装 伪装分为客户端伪装和服务器伪装,通信双方携带证书,证书相当于身份证,有证书就认为合法,没有证书就认为非法,证书由第三方颁布,很难伪造
防篡改 https对数据做了摘要,篡改数据会被感知到。hacker即使从中改了数据也白搭。


1. 客户端发起HTTPS请求

这个没什么好说的,就是用户在浏览器里输入一个https网址,然后连接到server的443端口。

2. 服务端的配置

采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。这套证书其实就是一对公钥和私钥。如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

3. 传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4. 客户端解析证书

这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书对该随机值进行加密。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

5. 传送加密信息

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6. 服务段解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

7. 传输加密后的信息

这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

8. 客户端解密信息

客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容。整个过程第三方即使监听到了数据,也束手无策。

总结整个过程:

1.服务器向CA机构获取证书(假设这个证书伪造不了),当浏览器首次请求服务器的时候,服务器返回证书给浏览器。(证书包含:公钥+申请者与颁发者的相关信息+签名)

2.浏览器得到证书后,开始验证证书的相关信息,证书有效(没过期等)。(验证过程,比较复杂,详见上文)。

3.验证完证书后,如果证书有效,客户端是生成一个随机数,然后用证书中的公钥进行加密,加密后,发送给服务器,服务器用私钥进行解密,得到随机数。之后双方便开始用该随机数作为钥匙,对要传递的数据进行加密、解密。

Https CA认证图解相关推荐

  1. HTTPS与CA认证

    1. HTTP 协议 在谈论 HTTPS 协议之前,先来回顾一下 HTTP 协议的概念. 1.1 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层. HT ...

  2. 用pfx证书java双向认证_把CA证书生成的crt的证书和pem的私钥转换成java能够使用的keystore和pcks12的证书,实现https双向认证...

    最近在做一个https双向认证的工作,领导先让我实现,我之前写了一篇文章,把tomcat的生成证书和配置的实现写了出来. 现在领导给了我服务器的CA证书的客户端证书和私钥,服务端信任证书,分别是crt ...

  3. 证书类型、自签CA证书、https双向认证(一篇就懂系列)

    #博学谷IT学习技术支持# 文章目录 1.Linux准备环境 2.证书扩展名 3.自签CA证书 3.1 生成根证书 3.2 生成服务端证书 3.3 生成客户端证书 4.开启https,并校验客户端(双 ...

  4. CA 认证过程及 https 实现方法

    CA 认证过程 CA 概述:Certificate Authority 的缩写,通常翻译成认证权威或者认证中心,主要用途是为用户发放数字证书.CA 认证的流程和公安局派出所颁发身份证的流程一样 认证中 ...

  5. [Linux] centos 6.5 httpd 自建CA 认证 实现 https 服务

    httpd 自建CA 认证 实现 https 服务 需要的软件: httpd mod_ssl openssl 本文将CA证书服务器和 httpd服务器放到一台物理机器上实现的, 可以作为学习的参考. ...

  6. centos 6.5 httpd 自建CA 认证 实现 https 服务

    httpd 自建CA 认证 实现 https 服务 需要的软件: httpd mod_ssl openssl 本文将CA证书服务器和 httpd服务器放到一台物理机器上实现的, 可以作为学习的参考. ...

  7. CA认证与HTTPs原理介绍

    今天继续给大家介绍Linux运维相关知识,本文主要内容是CA认证与HTTPs原理知识. 一.https与ssl 我们在访问网站时,使用的比较常见的是https协议,https协议其实就是在http协议 ...

  8. kubernetes https双向认证-----ca认证

    为什么写这个呢? 在没有了解k8s认证的时候干过一件蠢事,公司项目是通过bearer token进行权限认证的,当时一直在纠结这个token是哪儿来的,然后各种查询secret对比是否一样,最后找到了 ...

  9. CA认证-https实现

    一.CA认证流程 实验环境 CA认证中心服务端 lewis63 IP:192.168.1.63 客户端 lewis64 IP:192.168.1.64 认证中心(CA)的功能有:证书发放.证书更新.证 ...

最新文章

  1. 计算机桌面文件夹删除如何找回,电脑删除文件如何恢复 误操作的一剂后悔药...
  2. java创建线程的几种方式
  3. 从源码出发:JAVA中对象的比较
  4. 大家说火箭进决赛的机会有多大?
  5. 編程之美資格賽傳話遊戲
  6. 【好消息】Python和Excel终于可以互通了!!
  7. 哈希表和有序表的简单介绍
  8. dell戴尔服务器错误代码及解决方案2013版
  9. houdini 常用
  10. linux virbr0是什么意思
  11. 安卓设备设置 orientation 最简单的方法
  12. Linux清理入侵痕迹
  13. linux ssh keygen r,SSH的ssh-keygen命令基本用法详解
  14. llc变换器计算机仿真,LLC谐振变换器的参数设计
  15. 一篇文章带你快速弄清楚什么是终端
  16. 坚果云显示连接服务器失败怎么办,坚果云提示同步过程中遇到错误,怎么解决?...
  17. 如何修改 SQL Server 中的实例名 ?
  18. 为第九大股东;此前40次增持民生银行A股股份
  19. nyoj 1248 海岛争霸 (并查集)
  20. 在VBA中引用excel的函数

热门文章

  1. OUC-移动软件开发-实验1
  2. pycharm调试如何返回上一步_庞大的DCS系统是如何一步一步调试成功的?
  3. 认识ARM Cortex 的三个系列
  4. repeater中的item databound事件的具体发生过程
  5. php 微信登录并绑定,Laravel 集成微信用户登录和绑定的实现
  6. 逻辑回归损失函数求导推导过程
  7. 发展计算机模拟阵法的小说,关于大刘小说里多次提到的模拟宇宙演变的计算机程序@各种工科生~...
  8. 首行缩进2字符,CSS文本外观之文本缩进
  9. Multipass,多平台本地轻量级Linux体验!
  10. 史上最全Java工程师面试题汇总,全会月薪至少3W