You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Android应用禁止HTTP流量,仅允许HTTPS访问?

配置Android应用仅允许HTTPS流量的完整方案

1. 配置AndroidManifest.xml

直接在<application>标签中显式禁用明文HTTP流量,这是最基础的安全控制:

<application
    ...
    android:usesCleartextTraffic="false"
    android:networkSecurityConfig="@xml/network_security_config">
    ...
</application>
  • android:usesCleartextTraffic="false":Android 9及以上默认禁用明文流量,但显式声明能兼容更低版本(Android 7+)并明确安全策略。
  • 必须保留<uses-permission android:name="android.permission.INTERNET" />,HTTPS流量依然需要网络权限。

2. 配置network_security_config.xml

在res/xml目录下创建该文件,进一步强化全局HTTPS强制策略:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <!-- 全局基础配置 -->
    <base-config cleartextTrafficPermitted="false">
        <trust-anchors>
            <!-- 信任系统预装CA证书,适配所有合法第三方HTTPS API -->
            <certificates src="system" />
            <!-- 若需信任自定义CA(如内部测试环境),可添加此行,否则删除 -->
            <!-- <certificates src="@raw/custom_ca" /> -->
        </trust-anchors>
    </base-config>

    <!-- 可选:针对特定域名的精细化配置(如有特殊需求) -->
    <!-- <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">example.com</domain>
    </domain-config> -->
</network-security-config>
  • cleartextTrafficPermitted="false":全局禁止所有明文HTTP请求。
  • 信任系统CA证书足以覆盖绝大多数正规第三方HTTPS API的证书验证需求。

3. 额外加固:客户端拦截器(以OkHttp为例)

如果需要彻底杜绝代码中误写的HTTP请求,可在网络客户端中添加拦截器强制校验协议:

val okHttpClient = OkHttpClient.Builder()
    .addInterceptor { chain ->
        val request = chain.request()
        if (request.url.scheme != "https") {
            throw IllegalStateException("HTTP请求已被禁止,请使用HTTPS协议")
        }
        chain.proceed(request)
    }
    .build()

该拦截器会在请求发起前检查协议,一旦发现HTTP请求直接抛出异常,从代码层面阻断非法请求。

注意事项

  • 确保所有第三方API的HTTPS证书合法且受系统信任,避免出现证书验证失败导致的请求错误。
  • 若需兼容Android 6及以下版本,需保证应用Target SDK版本不低于26,或在network_security_config中添加兼容配置(目前这类旧版本占比极低)。

内容的提问来源于stack exchange,提问作者toto_tata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 01:57:42