为什么有时候访问某些加密https网站是不需要证书的? https? ssl?
根证书是CA颁发给自己的证书, 是信任链的起点
1.所有访问https的网站都是需要证书的。
2.对于某些网站,尤其是证书颁发机构的网站,操作系统自动添加了这些网站访问需要的证书到证书管理器中,所以就算用户完全不知道这些网站,他们也能很轻松的利用https访问这些网站,因为这些证书被操作系统管理并且已经关联到受信任的CA了。
3.对于其他网站,则这些网站必须提供证书才能安全访问,如果他们的证书无法被CA验证的话,浏览器就会弹出一些提示(取决于不同的浏览器),来告知终端用户这个网站可能不安全,希望不要发送私密数据。
4.操作系统都有自己的证书管理器,而安装在操作系统中的浏览器默认的导入证书则是操作系统证书管理器的证书列表+特定浏览器自己添加的少许证书。
HTTPS(Hypertext Transfer Protocol Secure)安全超文本传输协议
它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)
https是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,https的安全基础是SSL,因此加密的详细内容请看SSL。
ssl工作流程
服务器认证阶段:
1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
用户认证阶段:
在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。
经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。
Shinobu