iOS 10.3下Charles抓包ssl证书信任问题的解决办法
ios 10.3下解决charles抓包ssl证书信任问题
针对近期ios10.3以上的charles抓https信任问题
最近iphone系统更新到ios10.3后,在公司里用charles抓包竟然出现了一些问题,https的请求都会失败,提示错误信息为failure sslhandshake: received fatal alert: unknown_ca和you may need to configure your browser or application to trust the charles root certificate.然而之前任何问题都没有,并且相关设置都正确:mac上安装了charles的根证书,并且设置了始终信任,然后手机上也登录了https://chls.pro/ssl安装了描述文件,一切都按正常程序走的,但是错误始终无法解决.这里charles的相关使用不做介绍,不会使用的请参考本文结尾处唐巧大大的博文.
相关环境
charles 4.0.2
iphone 6s ios 10.3.1
原因
设置->通用->描述文件->charles proxy custom root certificate
虽然charles的根证书已经在安装列表中显示,但它是被关闭的。在ios 10.3之前,当你将安装一个自定义证书,ios会默认信任,不需要进一步的设置。而ios 10.3之后,安装新的自定义证书默认是不受信任的。如果要信任已安装的自定义证书,需要手动打开开关以信任证书。
解决
设置->通用->关于本机->证书信任设置-> 找到charles proxy custom root certificate然后信任该证书即可.
信任证书
后记
问题虽小,但是很有必要普及一下.这个设置证书信任的开关界面隐藏的很深,是ios 10.3之后出现的(貌似是,至少之前我没见过).这个问题因此也只有在ios 10.3的设备上才会出现,真是太意外了!因此作为ios开发者,更新手机系统时,了解一下系统更新的相关内容也变得很有必要.