https 协议

原创 2016年08月31日 11:23:23

1.简介

CA,Certificate Authority。

SSL,Secure Sockets Layer,安全套接层,层次位于HTTP与TCP之间。


HTTP协议以明文方式发送内容,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。
HTTPS使用端口443。Http使用端口80.
https协议需要到ca申请证书,一般免费证书很少,需要交费。


2.https的握手过程


1.浏览器将自己支持的一套加密规则发送给网站。      
2. 网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。      
3. 浏览器获得网站证书之后浏览器要做以下工作:    

  a)验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。       

b)如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。      
c)使用约定好的HASH算法计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。      

4.网站接收浏览器发来的数据之后要做以下的操作:     

  a)使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。      

  b) 使用密码加密一段握手消息,发送给浏览器。      

5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。

相关文章推荐

Java中的SSL及HTTPS协议实例源码

  • 2016年06月15日 13:37
  • 25KB
  • 下载

C语言使用OpenSSH模拟HTTPS协议

  • 2017年03月05日 17:38
  • 12.05MB
  • 下载

wamp下配置https协议

看了网上大神很多配置https,看到他们自己生成ssl证书,很牛逼的,小弟不是太会,直接去宝塔里下载了个免费证书,总结下给需要的人。...

兼容https和http协议的java代理服务器代码

最近做的一个http代理小程序,同时支持http和http。 1、获取http代理请求的头部信息,区分https还是http,做不同的处理 /** * 解析头部信息 * */ public fi...

配置tomcat服务https协议

配置tomcat服务https协议 声明:本篇文章配置方法适用于本地测试或者只有一台服务器测试环境的tomcat服务,如果需要给Nginx负载均衡配置https请转至下一篇文章。   步骤: 1. ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:https 协议
举报原因:
原因补充:

(最多只允许输入30个字)