开启Android Nougat 'Charles'ing SSL网络

开启Android Nougat ‘Charles’ing SSL网络

原文链接:https://medium.com/@elye.project/android-nougat-charlesing-ssl-network-efa0951e66de

如果你的应用与后端网络交互,你可能需要使用Charles网络调试代理工具。这是拦截网络并执行所需跟踪甚至更改它的一种非常方便的方法。

它也适用于安全的SSL网络,只要通常从http://www.charlesproxy.com/getssl/下载所需的证书。

不幸的是,从Android7(SDK24)开始,SSL网络不可直接查看。这实际上是Android 7中新引入的安全功能,因此应用中的SSL网络更安全,不会被第三方拦截。

Nouogat开启SSL代理

但是,如果为了自己的调试,想拦截SSL网络,你必须做什么?只需以下简单两步。

更新AndroidManifest.xml

使用networkSecurityConfig.xml更新AndroidManifest.xml的application段。

<application android:name=”AppName” 
 android:icon=”@mipmap/ic_launcherandroid:label=”@string/app_nameandroid:networkSecurityConfig=”@xml/network_security_config”>
添加network_security_config.xml文件

只需在xml文件夹添加这个文件

<network-security-config>    
   <base-config>  
      <trust-anchors>
          <certificates src="system" />
          <certificates src="user" />
      </trust-anchors>
   </base-config>
</network-security-config>

这样就可以像Android 7之前那样工作。因此,在Android 7中,您的应用程序的SSL网络具有了代理功能。

在Nougat中启用SSL Proxy仅用于调试

上述设置很好,但是它违背了Google在Android Nougat中为您的应用添加此安全功能的目的。

因此,要利用此功能,您可能希望仅在调试模式下启用SSL网络的代理功能。

你需要做的仍然是按照上面的步骤,但将networkSecurityConfig.xml的内容更改为下面的内容

<network-security-config>
   <debug-overrides>
      <trust-anchors>
         <certificates src="system" />
         <certificates src="user" />
      </trust-anchors>
   </debug-overrides>
</network-security-config>

有了这个,只有调试模式才会覆盖允许的证书来源,包括来自用户的。

哇!现在可以用Charles查看SSL信息了!

附加信息

网络安排配置|Android开发者

Android Nougat中受信任的证书颁发机构的更改

SSL证书 * Charles网络调试代理

Elye Project(@elye_project)|Twitter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值