参考:https://blog.51cto.com/11883699/2160032

上面说的已经很好地,我这里简单做个总结:

在网上我们做数据交互时候一般用的http协议,但是这种方式会使得交互内容明文化,很不安全,后来人们就想讲这个过程加密。

1)对于加密算法有对称加密和得对称加密算法,如果用对称加密算法加密客户端与服务端信息交互,方式:客户端给服务端发请求,服务端给客户端A回复使用对称秘钥A,客户端接收到对称秘钥A后回复知道了,之后客户端A就用对称秘钥A加密与服务端交互信息;同样服务端会给客户端B发送对称秘钥B,于此类推。但是这个过程中存在一个问题:对于这个秘钥协商的过程,是明文的,如果被第三方拦截,之后的操作在这个第三方面前都是明文的了

2) 为了解决1)中秘钥协商过程的明文容易被拦截获取,需要想个办法加密这一过程,于是乎我们可以用非对称秘钥加密算法(私钥加密后的密文,只要是公钥,都可以解密,但是反过来公钥加密后的密文,只有私钥可以解密。私钥只有一个人有,而公钥可以发给所有的人)来处理这一过程,具体方案:客户端A给服务端发送请求,服务端给客户端A发送一个非对称加密算法的公钥,自己留一个私钥,客户端获得这个公钥后,用这个公钥给服务器发送信息(包含对称加密算法,对称秘钥等信息),服务端收到消息解密获得对象消息,并用收到的对称加密算法加密信息给客户端发送收到了,之后就用这个客户端发来的对称加密算法来加密解密两者之间的信息交互。到这里看似已经很完美了,但是这中间还存在交互的过程是明文的且如果被第三方拦截,对于第三方来说还是明文交互了,这个地方就是:客户端问服务端获得非对称秘钥的公钥的过程。假设:如果客户端给服务端发送获取公钥的请求,被第三方拦截,第三方伪装成服务端,给客户端发送一个假公钥发给客户端,同时给真正服务端发送请求获得真正公钥,这样对于第三方来说跟明文交互一样了

3)为了解决2)中客户端与服务端明文交互获取分对称加密算法中的公钥被拦截的问题,这里用到了我们的最终密码武器“SSL证书需要购买和CA证书”保证了客户端获取的公钥是安全的,其中SSL 证书中包含的具体内容有证书的颁发机构、有效期、公钥、证书持有者、签名,通过第三方的校验保证了身份的合法,解决了公钥获取的安全性。具体方式:客户端发送请求给服务端,服务端返回一个SSL包(具体内容有证书的颁发机构、有效期、公钥、证书持有者、签名),客户端的校验过程:

以浏览器为例说明如下整个的校验过程:

(1)首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验

(2)浏览器开始查找操作系统中已内置的受信任的证书发布机构CA,与服务器发来的证书中的颁发者CA比对,用于校验证书是否为合法机构颁发

(3)如果找不到,浏览器就会报错,说明服务器发来的证书是不可信任的。

(4)如果找到,那么浏览器就会从操作系统中取出  颁发者CA  的公钥,然后对服务器发来的证书里面的签名进行解密

(5)浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比

(6)对比结果一致,则证明服务器发来的证书合法,没有被冒充

(7)此时浏览器就可以读取证书中的公钥,用于后续加密了

https原理和如何配置https的更多相关文章

  1. https原理及tomcat配置https方法

    一. 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不 ...

  2. (HTTPS)-https原理及tomcat配置https方法

    一. 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传 输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常 ...

  3. Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置

    Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置 ============================== ©Copyright 蕃薯耀 2017 ...

  4. 购买https证书以及nginx配置https

    文章来源 运维公会:购买https证书以及nginx配置https 1.https的作用 https的全名是安全超文本传输协议,是在http的基础上增加了ssl加密协议.在信息传输的过程中,信息有可能 ...

  5. Nginx 配置HTTPS 与Node.js 配置HTTPS方法

    前段时间公司网站要求加上HTTPS安全CA证书,公司服务器全是阿里云服务器,并且配有负载均衡,所以选择直接在阿里云购买CA证书,阿里云有一种证书可以免费试用一年,决定申请此证书,阿里云证书需要验证,阿 ...

  6. iOS应用将强制使用HTTPS安全加密-afn配置https(190926更新)

    WWDC 2016苹果开发者大会上,苹果在讲解全新的iOS10中提到了数据安全这一方面,并且苹果宣布iOS应用将从2017年1月起启用名为App Transport Security的安全传输功能. ...

  7. [从零开始搭网站六]为域名申请免费SSL证书(https),并为Tomcat配置https域名所用的多SSL证书

    点击下面连接查看从零开始搭网站全系列 从零开始搭网站 由于国内的网络环境比较恶劣,运营商流量劫持的情况比较严重,一般表现为别人打开你的网站的时候会弹一些莫名其妙的广告...更过分的会跳转至别的网站. ...

  8. ubuntu14.04安装 Apache2 并配置https

    一.安装 Apache2 sudo apt-get update sudo apt-get install apache2 安装完apache2,默认根目录在/var/www/html 下,点击其下的 ...

  9. 【转】HTTPS系列干货(一):HTTPS 原理详解

    HTTPS系列干货(一):HTTPS 原理详解 前言 HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并 ...

随机推荐

  1. php单点登录实现原理实例详解

    单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任. 单点登录在大型网站里使用 ...

  2. ztree 拖动树结构的移动组件样式不见了怎么办?

    这个是没有设置z-index被其他层级高的掩盖了. 修改方法: zTreeStyle.css中设置 结果:

  3. 后端技术杂谈8:OpenStack架构设计

    本文转自互联网,侵删 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutori ...

  4. html+js(swiper.js)+css左右滑动切换页面效果,适配移动端

    demo: 截图: 结构:1.swiper-progress.html2.css文件夹 -swiper.css -swiper.min.css 3.js文件夹 -swiper.min.js -swip ...

  5. redis为什么内存不宜过大

    redis的高性能.稳定性都是不用怀疑的,但如果redis塞入数据过多,内存过大,那如果出问题,那它可能会给我们的就是灾难性的. 1 主库宕机 主库宕机,常见的策略为“切主”.具体为从该集群剩余从库中 ...

  6. 浮点数float累加误差解决方式总结

    首先是float累加产生误差的原因,该部分转自:http://blog.csdn.net/zhrh0096/article/details/38589067 1.  浮点数IEEE 754表示方法 要 ...

  7. SQL常用语句之数据库中表的创建、删除以及属性的修改-篇幅3

    一.表的创建: CREATE TABLE [database_name.[schema_name].|schema_name.]table_name (column_name1 data_type   ...

  8. MFC---导出 Excel 方法

    本方法通过Excel驱动写入 请添加头文件 #include"afxdb.h" 第一步创建Excel文件 安装驱动 CString FileName = L"first. ...

  9. spring-第十八篇之spring AOP基于XML配置文件的管理方式

    1.在XML配置文件中配置切面.切入点.增强处理.spring-1.5之前只能使用XML Schema方式配置切面.切入点.增强处理. spring配置文件中,所有的切面.切入点.增强处理都必须定义在 ...

  10. Struts2之动态方法调用

    1.感叹号 前台页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...