HTTPS与SSL
------------------------------------------------------------------------------------------------------
HTTPS 就是 HTTP协议+SSL协议;其中 SSL协议 位于HTTP与TCP/IP之间;
SSL协议的功能:① 确认服务器和客户端的身份(证书及握手协议) ② 对数据进行加密(对称加密) ③ 确保数据的完整性(HASH签名验证)
首先说一下SSL证书:
SSL证书是由CA机构颁发的,部署SSL证书的服务器都是经过CA认证的 安全的;
SSL证书内容:
版本号(不同版本 证书格式不一样)
序列号(同一个CA机构颁发的证书 序列号彼此不可能相同,即每个证书的序列号唯一)
签名算法(不对称加密算法 RSA、DSA、DSS等 公钥加密,私钥解密)
有效期(其实日期 结束日期)
证书持有人信息
持有人公钥(注意 这里是公钥 而且,仅有公钥)
机构对证书的签名(不太懂)
SSL证书 部署方式:不同的服务器(J2EE Apache iis),部署方式不同,J2EE的亲自部署了一下,没什么难度!后面也许会写到怎么在tomcat上部署SSL证书;
SSL的协议组成:
SSL协议又可以细分为三个协议:握手协议 记录协议 警告协议
握手协议的作用就是确认服务器的正确性,是不是要访问的服务器,协商加密算法。
记录协议的作用就是对传输的数据进行压缩、封装、加密。
警告协议的作用就是发出异常是产生警告
SSL的工作流程:
1、握手 握手的作用是查看服务器的合法性,主要包括:证书是否过期、公钥是否能够解开签名、证书域名与浏览器域名是否匹配等
首先由客户端发送一个消息(称为hello),里面包含着很多信息。协议版本号、支持的加密算法种类、用作产生密钥的随机数等等。

服务器会回一个包,包含了在支持的加密算法中选取的用于加密应用数据的算法、以及SSL证书的信息(证书信息可以在IE浏览器 点击“锁”图标看到)

浏览器对返回的证书上的信息进行验证,以便确认服务器是否合法;验证完成后,产生一个随机密码串,使用证书中的公钥对密码串进行加密,然后回包。这是交换密钥的过程!(然而这块的报文并没有看懂)
这时候,服务器可以用自己的私钥对客户发来的包进行解密(不对称加密),得到密码串的明文。如果服务器不需要对你客户端进行验证,那么握手协议到此结束。之后传输的应用数据都会用这个密码串进行加密(对称加密)。
如果服务器需要对客户端进行验证,那么此时在客户端也会有一个证书;客户端需要将自己的证书 还有 产生的一个随机串一起加密,给服务器端;服务器端进行验证。通过后,可能经过其他的一系列东东,再产生一个密码串,用这个密码串对应用数据进行加密!
OK,下面总结一下:握手过程主要是完成 认证、协商算法、产生密钥这三件事,使用的是不对称加密;
应用数据的传输使用的是对称加密 密钥就是握手中产生的密钥;
HASH加密可能主要是为了保证信息的完整性。
浏览器如何验证证书的有效性:
浏览器会在证书中找到CA机构的IP或者是域名,然后去CA机构对证书进行验证。
同一站点同时使用HTTP与HTTPS:
HTTPS非对称加密非常耗CPU,所以一般只对敏感的网页信息使用HTTPS。
HTTPS与SSL的更多相关文章
- 聊聊HTTPS和SSL/TLS协议
要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识.1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接 ...
- 浅谈HTTPS和SSL/TLS协议的背景和基础
相关背景知识要说清楚HTTPS协议的实现原理,至少要需要如下几个背景知识.大致了解几个基础术语(HTTPS.SSL.TLS)的含义大致了解HTTP和TCP的关系(尤其是"短连接"和 ...
- 浅谈 HTTPS 和 SSL/TLS 协议的背景与基础
来自:编程随想 >> 相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 ...
- 好程序员带你了解一下HTTPS和SSL/TLS协议的背景与基础
>> 相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 TCP 的关系(尤其 ...
- 聊聊HTTPS和SSL/TLS协议 分类: 计算机网络 2015-07-11 21:41 4人阅读 评论(0) 收藏
要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 2. 大致了解 HTTP 和 TCP 的关系(尤其是"短连接 ...
- Https协议:SSL建立过程分析(也比较清楚,而且有OpenSSL的代码)
web访问的两种方式: http协议,我们一般情况下是通过它访问web,因为它不要求太多的安全机制,使用起来也简单,很多web站点也只支持这种方式下的访问. https协议(Hypertext Tra ...
- HTTPS、SSL与数字证书介绍
在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕这个模式谈一谈. 名词解释 HTTPS:在HTTP(超文本传输协议)基础上提出的一种安全 ...
- 【转】聊聊HTTPS和SSL/TLS协议
要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识.1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接 ...
- Https系列之二:https的SSL证书在服务器端的部署,基于tomcat,spring boot
Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ...
- Https系列之四:https的SSL证书在Android端基于okhttp,Retrofit的使用
Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ...
随机推荐
- 学习笔记——访问者模式Visitor
访问者模式,通过Visitor的注入,为Element扩展了方法实现.虽然避免了Element不用修改即可修改,但却破坏了类的封装性,同时,一旦变更就需要增加子类,在子类方法中调用基类方法,然后再使用 ...
- iOS拨打电话
1,这种方法,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示NSMutableString * str=[[NSMutableString alloc] initWithFo ...
- 《C++ Primer》之指向函数的指针
函数指针是指指向函数而非指向对象的指针.像其他指针一样,函数指针也指向某个特定的类型.函数类型由其返回类型以及形参表确定,而与函数名无关: // pf points to function retur ...
- VS2010 制作安装包,无法生成卸载快捷方式
目前我出现了这个错误,原因是项目目录中包含了中文字符导致的,我改变了文件夹之后,就没问题了
- Python logging模块使用记录
1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info messa ...
- Ubuntu服务器断网问题解决
原因:dns服务器没有了配置信息. 配置dns服务器 ubuntu 的dns服务器信息,放在 /etc/resolv.conf中, 添加dns服务器地址,如192. ...
- 决策树J48算法
1.J48原理 基于从上到下的策略,递归的分治策略,选择某个属性放置在根节点,为每个可能的属性值产生一个分支,将实例分成多个子集,每个子集对应一个根节点的分支,然后在每个分支上递归地重复这个过程.当所 ...
- Go-file
两个包具有文件操作的相关方法,一个是os,一个是syscall,其中os中的相关方法是对syscall相关方法的封装,推荐使用os中的相关方法.文件的打开文件的第一步操作实际上是创建,但是由于文件的打 ...
- SDCycleScrollView 添加初始滚动页码
最近在做一个无限轮播界面,由于自己写的有些卡顿,所以我使用了第三方框架SDCycleScrollView,但是我的初始滚动页不是从第一页开始怎么办,我想从第二页,第三页,或者最后一页,关于这个SDCy ...
- jni中的参数含义
#include <jni.h> JNIEXPORT jstring JNICALL Java_com_example_hellojni_MainActivity_helloFromC ( ...