查看: 863|回复: 0

[JavaScript/JQuery] https那些事

发表于 2017-8-8 12:00:10
尚学堂AD
https简介 名称

超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种网络安全传输协议.

目的

HTTPS开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。

http && https

都是基于tcp协议传输数据的.
但是http使用的是明文传输,https使用是SSL加密传输.
http使用端口80,https使用端口443.
粗暴的理解为http + ssl = https.

https传输

客户端发起HTTPS请求
客服端发起请求,然后连接到server的443端口。

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

传送证书
收到客户端请求后,证书发给客户端,这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

客户端解析证书
首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,就生成一个随即值。然后用证书对该随机值进行加密。

传送加密信息
公钥加密后的随机数发给服务端.

服务段解密信息
服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。

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

客户端解密信息
客户端用之前生成的私钥解密服务端传内容。



回复

使用道具 举报