背景
https是Web的核心,chrome早已经会提示http为不安全,大部分公司都已经全量切换为https,但https由于传输加密,抓包基本上看不出来,因此需要一些流程和经验来提升排查效率。
问题排查
1、排查流程
2、常用工具
curl
curl --curl -I -vvv https://test.com 使用-vvv可以看到具体的交互信息
openssl
打印和分析https请求
gnutils-cli
查看证书链信息
代码语言:javascript复制yum -y install gnutls-utils
gnutls-cli testwww.xxx.cn -p 443
浏览器
F12->Security->View certificate
3、常见问题
访问链路问题
https访问报错,不一定是https的问题,先确认是否是证书问题,http是否访问正常
通常https问题有明显的报错
CA 不被信任
自签名证书,会提示系统不信任其安全证书,比如之前的12306,现在大部分网站已经不再使用自签名,使用权威机构颁发的证书,一般不会出现这种情况
中间证书缺失或错误
部分浏览器或者客户端正常,部分访问异常
查看返回的证书是正确的
使用gnutils-cli工具检查证书链,并更新证书链
SNI不支持
https://myssl.com/可以看到,目前主要是IE6、IE8、java6存在不支持SNI的情况,或者一些自己开发的客户端
可以通过抓包查看https有没有SNI扩展来确认
混合资源
点击Security可以看到,view 4 requests in Network Panel
点开后可以http的静态资源
签名算法不安全
需要sha256,如出现sha128,则签名算法不安全
加密组件不安全
https://myssl.com/可以检查加密套件,浏览器也会有明显提示,暂时没找到这类网站,可根据自己遇到情况排查是否是这个原因