浅析HTTPS及测试注意事项

2017-08-02   出处: 搜狗测试  作/译者:Anna

问题

前段时间小编在测试过程中遇到过这样一个问题:手机连接Fiddler抓取泛灵犀图片请求,在客户端部分图片无法显示,如图。问题排查过程中发现HTTP请求的图片可以正常显示,HTTPS请求的图片都无法显示。


解决方案

经查阅资料,问题得到了完美解决,解决方案如下:

方案一:

1)打开Fiddler中的Tools→Fiddler Options→HTTPS,勾选 Capture HTTPS CONNECTs,勾选 Decrypt HTTPS trafic;

2)重启Fiddler,再次进入 HTTPS 选项卡,点击右侧Actions,能看一个下拉菜单,点击 Export Root Certificate to Desktop,此时证书会生成到桌面上,名为 FiddlerRoot.cer,点OK保存

3)android手机连接到电脑上,从电脑上打开手机的内存卡,直接把证书导入SD卡中

4)进入手机中的设置——>安全——>从SD卡安装——>从内部存储空间中找到证书,点击安装

方案二:

1)同上述步骤一;

2)在手机浏览器地址栏中输入ip:端口号,下载证书后安装即可


HTTPS原理

我们都知道HTTP并非是安全传输,而HTTPS是相对安全的,在传输数据之前,需要客户端和服务进行一次握手,在握手过程中确立双方加密传输数据的密码信息,然后在后续通信过程中就使用协商密钥进行对称加密通信。具体过程见下图:


1)客户端发起HTTPS请求

即用户在浏览器里输入一个https网址连接到服务器端口。

2)服务端初步响应

采用HTTPS协议的服务器必须要有一套数字证书,这套证书其实就是一对公钥和私钥,可以想象成一把钥匙和一个锁头,只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。将证书发回给浏览器,证书包含证书的颁发机构、过期时间等。

3)客户端解析证书

客户端首先会验证证书是否有效,比如颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致、过期时间等,如果发现异常,则提示证书存在问题(小编在测试过程中就遇到了类似的问题:在手机上安装了HTTPS证书后,客户端仍然无法展示图片,原因就是后调了手机时间,该时间没有在证书的时间范围内,导致客户端解析证书失败)。如果证书没有问题,那么客户端就生成一个随机值,然后用证书对该随机值进行加密。

4)客户端发送加密信息

客户端发送的是用证书加密后的随机值。

5) 服务器解密信息

服务端用私钥解密后,得到了客户端传过来的随机值,然后把内容通过该值进行对称加密(所谓对称加密就是将信息和私钥通过某种算法混合在一起)。

6)服务器发送加密后的信息

服务器发送的是服务端用随机值进行对称加密后的信息。

7) 客户端解密信息

客户端用之前生成的随机值解密服务端传过来的信息,客户端就获取了解密后的内容。

Fiddler本身就是个很好的代理工具,可抓取协议请求用于调试。在HTTPS原理图上,客户端与服务器端进行通信的过程全部都由Fiddler获取到,如下图所示:


测试注意事项

1)手机连接Fiddler后,需要安装证书

2)证书是有有效期的,查看方式:


3)手机时间正确

所有的证书都有颁发日期和截止日期,手机时间不对就有可能导致https证书无效

4)适配手机网络

WIFI、三大运营商的4G/3G/2G




声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
329° /3291 人阅读/0 条评论 发表评论

登录 后发表评论
最新文章