网络重试机制优化-关于https证书验证
2021-12-04 本文已影响0人
薛之东_HankGreen
场景:Android端带一个HTTPS使用系统验证的需求,目前暂不需要对证书的验证。
关键核心类:HttpsUtils
关键核心方法:getSslSocketFactory
目前实施方案是将所有的OkHttpClient.Builder.sslSocketFactory方法屏蔽掉即可,可实现在代理环境下无法通过fiddler对Https请求进行抓包操作,但同时会导致在代理环境下正式环境提示无证书验证的问题。
根据上述问题场景,额外在mta_network_security_config.xml下新增以下代码,可实现在代理环境and测试环境下能使用系统和用户的证书,对Https的访问进行抓包操作:
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="system"/>
<certificates src="user"/>
</trust-anchors>
</debug-overrides>
</network-security-config>
关于Https证书验证问题,建议使用自认证证书或是商业证书进行认证,这样可以实现在代理环境下APP正常使用且不会暴露Https请求,增加安全性且不会影响某些异常用户环境下的操作。