SSL又叫“安全套接层(Secure Sockets Layer)协议”,是一种在客户端和服务器端之间建立安全通道的协议。
SSL为通信双方提供了一种安全、可信、有效的通信方式。
SSL协议分为密匙协商、数据通信两个部分,其中密匙协商就是所说的握手协议。
形象的可以用下面这幅图来说明。
具体过程通过wireshark抓取ie6跟gmail的通信过程可以看出一二。
这是Client Hello内容:
这是Server Hello内容:
这是服务器传输的证书:
这样就对SSL通信过程有了一个大致的了解。
不是需要忽略证书,而是没有证书无法验证时选择忽略。
-
一般意义上的https,就是服务器有一个证书。
-
少许对客户端有要求的情况下,会要求客户端也必须有一个证书。
-
因此当客户端没有证书时,需要服务器忽略证书验证。
服务器认证阶段:
1.客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
2.服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
3.客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
4.服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。