前言
最近把Chrome升级到58以上的版本,发现使用Fiddler不能抓HTTPS的包,会提示“隐私设置错误”、“您的连接不是私密连接”错误。
在尝试各种方案修复之后,发现了更多奇葩的问题。
Chrome 58 不能使用Fiddler抓Https包
Chrome 58+打开HTTPS网站报错如下:
NET::ERR_CERT_COMMON_NAME_INVALID
Issuer: DO_NOT_TRUST_FiddlerRoot 显然是Fiddler生成的证书在Chrome 58不生效。
原因
Chrome no longer accepts certificates that fallback to common name (ERR_CERT_COMMON_NAME_INVALID):https://bugs.chromium.org/p/chromium/issues/detail?id=700595&desc=2
Chromium removed support for matching common name in certificates in M58: https://www.chromestatus.com/features/4981025180483584
Certificates that rely on this deprecated behavior will now be rejected with:
ERR_CERT_COMMON_NAME_INVALID
受影响的证书通常是本地生成的证书,用于开发的目的,或者是私有PKI的一部分。解决方案是重新生成证书以包含“Subject Alternative Name”扩展名,或者在Chrome中启用选项以允许证书生效。
解决方案
目前可以安装Chrome V56降级兼容
Chrome56.0.2924.87下载地址:
Windows版(32位):点击这里
Windows版(64位):点击这里
MAC版(官网下载地址):点击这里
新解决方案
重置Fiddler,具体步骤:
Tools > Fiddler Options > HTTPS > “Certificates generated by MakeCert engine” > Choose CertEnroll > Actions > Reset All Certificates > restart Fiddler.
详情:https://textslashplain.com/2017/03/10/chrome-deprecates-subject-cn-matching/
IOS 10.3使用Fiddler(Charles)不能抓取HTTPS包
在解决Chrome 58不能抓包问题的时候,把Fiddler证书重新装了一遍。这时候手机抓包需要重新安装证书,发现安装完之后,原本能正常抓包的手机,突然就不能抓取HTTPS的包。
Safari始终需要重新信任证书,微信打开网页报-1202。
现象
- Android 重新安装可正常抓HTTPS包
- IOS 9.2 重新安装可正常抓HTTPS包
- IOS 10.3 安装证书之后始终提示证书不可信
- IOS 10.3 在旧的电脑上可正常抓HTTPS的包(旧电脑证书未卸载重装)
遇到这个奇葩的问题,实在没有头绪,尝试多种方案均不可行。比如导出旧电脑证书再安装等等,可惜IOS不能降级系统。
原因
在IOS 10.3中,因为已经颁发的SSL证书的证书颁发机构不在其信任列表中,所以IOS拒绝SSL握手。
解决方案
以前要解决这个问题,只需要在手机上的Safari访问安装证书(教程:使用Fiddler抓包和调试移动web页面),告知手机需要信任这个证书。
现在,需要在安装证书之后,需要再次信任证书:设置-通用-关于本机-证书信任设置
思考
为什么会出现现象4的问题,一台旧电脑能代理抓包,另一台不能呢?
发现新安装的Fiddler证书虽然出现在列表中,但是处于已关闭状态。
在IOS 10.3之前,默认情况下,当安装自定义证书时,IOS会隐式相信它,无需进行下一步操作。
从IOS10.3起,新的自定义证书默认是不可信的,需要手动开启信任。
所以在IOS 10.3之前安装和受信任的证书是正常的,在尝试安装新证书之前,不会碰到这个问题。
暂无评论