HTTPS 默认工作在 TCP 协议443端口,它的工作流程一般如以下方式:
- 1、TCP 三次同步握手
- 2、客户端验证服务器数字证书
- 3、DH 算法协商对称加密算法的密钥、hash 算法的密钥
- 4、SSL 安全加密隧道协商完成
- 5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。
SSL证书
SSL证书类似身份证,用于支持HTTPS网站的身份证明,SSL证书包含了网站的域名、证书有效期、证书的颁发机构、以及用于加密传输密码的公钥
SSL证书可以向CA机构通过付费方式申请,也可以自己制作,但是个人制作的证书不受浏览器信任。一个证书只能绑定一个域名,使用通配符域名可以绑定主域名下面的所有域名,不过价格更加高昂。
证书验证
证书以证书链
的形式组织,在颁发证书的时候首先要有根CA机构颁发的根证书,再由根CA机构颁发一个中级CA机构的证书,最后由中级CA机构颁发具体的SSL证书。
在验证证书的时候,浏览器会调用系统的证书管理器接口
对证书路径中的所有证书一级一级
的进行验证
,只有路径中所有的证书都是受信的,整个验证的结果才是受信。
浏览器对SSL证书验证失败可能的原因
- SSL证书不是由受信任的CA机构颁发的
- 证书过期
- 访问的网站与证书绑定的网站不一致
HTTPS常见的攻击手段
- SSL证书欺骗
- SSL劫持
优缺点
- 优点:
安全
、有利于SEO
、提高用户信任
- 缺点:
成本高
、访问速度慢
、加密解密等过程消耗CPU资源
、一个IP只能绑定一个域名
扩展
- HTTPS中
会话密钥
是在SSL证书验证通过后随机生成的
网友评论