Skip to content

全站https

为什么使用https

http的缺点

  • 通信明文传输,内容可能被窃听;
  • 无法验证客户端身份,可能被伪装;
  • 无法验证数据的完整性,可能被篡改;

如何解决http的缺点

  • 加密防止窃听;
  • 通信加密:http本身没有加密机制,可以组合使用SSL(安全套接层)和TLS(安全传输层)技术实现通信的整个加密;
  • 使用证书查明对方身份,证书由值得信赖的第三方机构颁发;
  • 使用SSL提供摘要功能;

衍生的https

  • http+加密+认证+完整性保护=https;
  • https不是应用层的一种新协议,只是http通信接口部分用ssl或tls协议替换,通俗的说https就是http外边套了一层壳;

https的算法

  • 对称算法:加解密使用同一个密钥,加解密速度快,代表:DES、AES;
  • 非对称算法:密钥成对出现,加解密使用不同的密钥,公钥加密私钥解密,私钥加密公钥解密,加密速度慢,代表:RSA、DSA;

https的传输过程

  • 客户端发送一个连接请求给服务器;
  • 服务器将自己的证书(由CA签发,同时包含服务器公钥)、对称加密算法种类及其他相关信息返回客户端;
  • 客户端浏览器比较证书里的信息,如证书有效期、服务器域名和公钥,是否由信任的CA签发,如果一致,则浏览器完成对服务器的身份认证。否则给客户一个警告信息:询问是否继续访问;
  • 客户端向服务器发送客户端证书(包含客户端公钥)、支持的对称加密方案及其他信息。服务器收到后,进行相同的身份认证,若没有通过验证,则拒绝连接;
  • 服务器根据客户端浏览器发送的密码种类,选择一种加密方案,用客户端公钥加密后通知到客户端浏览器;
  • 客户端通过私钥解密后,得知服务器选择的加密方案,并选择随机生成一个会话密钥,接着用服务器公钥加密后发送给服务器;
  • 服务器接收到浏览器传送的消息,用私钥解密,获得通话密钥key;
  • 接下来的数据传输都使用该对称密钥key进行加密;

参考资料

全站 HTTPS 没你想象的那么简单

全站HTTPS的那些坑

启用全站HTTPS后不仅更安全而且更快 看淘宝是如何做到的