前言:
在URL之前加上https://的前缀,可以看出是用SSL加密的。 在你的电脑和服务器之间发送和接收的信息的传输会更安全。 要启用SSL,Web服务器必须获取服务器证书并将该证书绑定到使用SSL的服务器。
http和https使用完全不同的连接方法,使用的端口也不同。 前者是80,后者是443。
HTTPS协议是用SSL HTTP协议构建的可加密传输、认证的网络协议,比http协议更安全。
安全超文本传输协议(https ) :
这是一个安全的通信通道,基于HTTP开发,用于在客户计算机和服务器之间交换信息。 使用安全套接字层(SSL )进行信息交换。 简单来说,是HTTP的安全版。
它是由Netscape开发的,并嵌入在浏览器中。 Netscape压缩和解压缩数据,并返回web上传的结果。
HTTPS实际上是将Netscape的安全套接字层(SSL )应用为http APP应用层的子层。 (使用端口443,而不是像HTTP那样通过端口80与TCP/IP进行通信。 )
SSL使用40位关键字作为RC4流加密算法,适用于加密业务信息。 HTTPS和SSL支持X.509数字身份验证,如果需要,用户可以验证发件人是谁。
HTTPS和HTTP的区别:
https合同需要向ca申请证书,一般免费证书很少,需要收费。
http是超文本传输协议,信息是明文传输,https是安全的ssl加密传输协议。
http和https使用完全不同的连接方法端口,前者为80,后者为443。
http的连接很简单,无状态。
HTTPS协议是用SSL HTTP协议构建的可加密传输、认证的网络协议,比http协议更安全。
HTTPS解决的问题:
1、信任主机问题:
使用https的服务器必须从CA申请用于证明服务器用途的证书。 仅当此证书用于相应的服务器时,客户端才信任此主机。
因此,目前所有的银行系统网站,重要部分的APP应用都是https。 客户通过信任此证书来信任此主机。 虽然实际上效率不高,但银行将重点放在安全上。
这对我们来说没有任何意义。 是我们的服务器
,招聘的证书无论是自己issue,还是从公共场所issue,客户端都是自己的人,所以我们也信任那个服务器。
2、通信中数据的泄露和篡改:
1 .一般意义上的https是服务器拥有证书
a )主要目的是确保服务器是他声称的服务器。 这和第一点一样
b )服务器端和客户端之间的所有通信都是加密的。
I .具体来说,客户端生成对称的密钥,通过服务器的证书交换密钥。是一般意义上的握手过程。
ii .所有信息的交换都是加密的。 即使第三方拦截,也没有任何意义。 因为他没有钥匙。 当然篡改也没有任何意义。
2 .如果客户有一点要求,客户也需要证书
a )其中客户端证书实际上在表示个人信息时,除了用户名/密码之外,还具有经CA认证的身份。 个人证书一般应是他人无法模仿的。 这可以更深入地确认自己的身份。
b )目前少数个人银行的专业版就是这种做法,具体证书可能以u盘为备份载体
HTTPS一定很麻烦:
a )因为本来简单的http协议,一个get和一个response.https
需要返回密钥并检查加密算法。 光握手就需要6/7次往返。
I .在任何APP应用中,过多的round trip肯定会影响性能。
b )接下来是具体的http协议,每次应答或要求,客户端和服务端都要求对会话内容进行加密/解密。
I .尽管对称加密/解密效率高,但由于消耗了过多的CPU,所以有专用的SSL芯片。 如果CPU不可靠,则会导致性能降低,无法serve进一步的请求。
ii .加密后数据量的影响。正因为如此,才会出现那么多安全认证的提示