https加密
对称加密 客户端和服务器使用同一把钥匙,加密算法公开
非对称加密 不同钥匙,公钥加密的私钥可以打开 私钥加密的公钥可以打开
HTTPS关键:
1. 要传输的业务数据,使用对称加密。
客户端生成私钥,并传送给服务器。 ☆
客户端用私钥加密后的业务数据,传送给服务器。
服务器再用这个私钥来解密业务数据。
2. 客户端的私钥本身,使用非对称加密。
客户端拿到服务器的公钥后,对私钥进行加密后才传给服务器。☆
服务器用自己的私钥来解密客户端的私钥
流程:
服务器S --> 客户端C S家公钥 第一步
客户端C --> 服务器S S家公钥加密过的C家私钥
服务器 用S家私钥解密,获取到原始的C家私钥。
客户端C -->服务器S C家私钥加密过的业务数据
服务器 用C家私钥解密业务数据
问题: 第一步黑客可以伪造公钥给客户端来试图获取C家私钥
解决方法: S家的公钥也要有担保人。
全球公认的就100多家公司(CA公司)用于认证。
数字证书。用于客户端来探明公钥网站的合法权威性。
数字证书 = CA家的私钥加密过的S家公钥 + 过期时间 等
设备上装了公认的100多家CA公司的公钥。
如果说,设备上的100多家CA公司的公钥有能够解析数字证书的,说明该证书合法,非客户所为。
参考一下文的总结:
总结:
HTTPS的传输过程涉及到了对称加密和非对称加密,对称加密加密的是实际的数据,非对称加密加密的是对称加密所需要的客户端的密钥。
为了确保客户端能够确认公钥就是想要访问的网站的公钥,引入了数字证书的概念,由于证书存在一级一级的签发过程,所以就出现了证书链,在证书链中的顶端的就是根CA。
Android客户端不信任服务器证书的原因主要是因为客户端不信任证书链中的根证书CA,我们应该让我们的App去信任该根证书CA,而不是直接信任网站的自身的数字证书,因为网站的数字证书可能会发生变化。
http://blog.csdn.net/iispring/article/details/51615631#rd
https加密的更多相关文章
- Nginx采用https加密访问后出现的问题
线上的一个网站运行了一段时间,应领导要求,将其访问方式更改为https加密方式.更改为https后,网站访问正常,但网站注册功能不能正常使用了! 经过排查,是nginx配置里结合php部分漏洞了一个参 ...
- 百度HTTPS加密搜索有什么用?
前段时间,我曾提到百度支持移动端HTTPS SSL加密搜索,用以保护用户隐私.最近,百度开始支持PC端HTTPS SSL加密搜索,现在可以启用 https://www.baidu.com 搜索.我很少 ...
- https加密实现
author:JevonWei 版权声明:原创作品 在httpd安装完成的基础上实现https加密 安装mod_ssl软件包 yum -y install mod_ssl http -M 显示mod_ ...
- HTTPS加密流程超详解(一)前期准备
0.前言 前一阵子想写一个HTTPS的嗅探工具,之前只是大致了解SSL/TLS协议的加密流程,真正上起手来一步一步分析发现还是有点复杂的,于是我参考了wireshark的源码以及各种RFC,弄清楚了S ...
- HTTPS加密那点事-对称、非对称加密、数字证书
转自:[漫画]https 加密那点事 首先,HTTP协议的缺点:没有对数据进行加密,都是明文传输的.如果要改进这种明文传输的协议,该如何做呢? 对称加密: 在每次发送真实数据之前,服务器先生成一把密钥 ...
- 部署自建CA颁发证书实现https加密
理论忽略:百度上很多 需求:自建证书并实现域名的https加密 部署: 在linux机器上执行以下命令生成私钥 mkdir -p /opt/ssl-cert cd /opt/ssl-cert 1.# ...
- 免费获取SSL证书/一键安装SSL证书/https加密
因为我用的是恒创的香港服务器 虽然价格相较于大促的阿里云贵一些,但是有一个有点不用备案... 安装步骤: 1.登录云主机控制面板, 在 其他管理 中找到并进入 SSL证书 设置. 注意:如拥有多个域名 ...
- https 加密、http2.0、keep-alive
原文地址:https://ainyi.com/44 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议 ...
- Apache强制WWW跳转以及强制HTTPS加密跳转的方法
一般我会较多的使用WORDPRESS程序,其在安装的时候我们如果直接用WWW打开,或者在后台设置WWW域名则默认会强制301指向WWW站点域名.而这里有使用ZBLOG或者TYPECHO等其他博客程序则 ...
- https加密过程
https加密完整过程 step1: “客户”向服务端发送一个通信请求 “客户”->“服务器”:你好 step2: “服务器”向客户发送自己的数字证书.证书中有一个公钥用来加密信息,私钥由“服务 ...
随机推荐
- JS中 confirm()方法的使用?
confirm() 方法用于显示一个带有指定消息和 OK 及取消按钮的对话框. 如果用户点击确定按钮,则 confirm() 返回 true.如果点击取消按钮,则 confirm() 返回 false ...
- CSS 字体描边
-webkit-text-stroke: 2px #; text-stroke: 2px #; -o-text-stroke: 2px #;
- js 点名
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Delphi-CompareStr 函数
函数名称 CompareStr 所在单元 System.SysUtils 函数原型 function CompareStr(const S1, S2: string): Integer; 函数功能 比 ...
- C++explicit关键字
在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换. explicit使用注意事项: * explicit ...
- Renting Boats
Description 长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,…,n.游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇.游艇出租站i 到游艇出租站j 之间的租金为r( ...
- __file__ __name__ __doc__ argv详解
__file__:表示输出当前py文件的路径 __name__: 表示输出当前函数名称,是main()函数(入口函数),或者是其他函数 __doc__: 模块的对象,输出模块的版权信息,如:作者 ch ...
- Java 的性能优化
jvm 中的方法区: 永久区---存的类的信息.方法.常量 .静态变量 1.Java的性能优化 1.减少gc的压力,优先级比较低的线程,他是一个守护线程 回收我们的堆内存. 2.尽量的避免我们的new ...
- haskell入门
斯坦福公开课<编程范式>中介绍了Scheme(但是不仅仅是Scheme,它只是作为函数式语言的代表),最后一课介绍了Haskell... “Hello World!”是学习一门语言的魔咒 ...
- windows下和linux下 Redis 安装
Redis 是一个高性能的key-value数据库, 使用内存作为主存储,数据访问速度非常快,当然它也提供了两种机制支持数据持久化存储.比较遗憾的是,Redis项目不直接支持Windows,Windo ...