Pollingsoon 2026-01-19 00:33 采纳率: 0%
浏览 4

这到底是什么原因?有没有遇到过的?

img

img


到底是什么原因?需要怎么解决呢?有没有遇到过的?。我初步判断,应该是抓包工具安装的证书导致的

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2026-01-19 08:52
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    你提到的“抓包工具安装的证书导致的问题”是一个非常常见的网络问题,尤其是在使用像 Charles、Fiddler、Wireshark 等抓包工具时。这类工具通常会安装一个根证书(Root CA),用于解密 HTTPS 流量。然而,这个证书如果被系统或应用误认为是可信的,就可能导致一些安全警告、连接失败、证书错误等问题。


    一、可能的原因分析

    1. 抓包工具安装了不受信任的根证书

      • 抓包工具(如 Charles)会在系统中安装一个自签名的根证书。
      • 如果该证书没有被系统正确识别为“受信任”,则可能会触发 SSL/TLS 错误。
    2. 证书过期或不匹配

      • 如果你使用的抓包工具版本较旧,或者证书已经过期,也会导致连接异常。
    3. 系统/应用未正确信任该证书

      • 在 macOS 或 Windows 中,你需要手动将抓包工具的证书添加到系统的信任列表中。
    4. 防火墙或杀毒软件拦截

      • 某些安全软件可能会阻止抓包工具访问网络或处理证书。
    5. 开发环境配置问题

      • 在开发环境中,某些框架(如 Node.js、Android、iOS)可能需要额外配置来信任该证书。

    二、解决方案(有序列表)

    1. 检查并信任抓包工具的证书

    • 在 macOS 上:

      • 打开 钥匙串访问(Keychain Access)
      • 找到抓包工具的证书(例如 Charles Root Certificate
      • 双击证书 → 选择 “始终信任”
    • 在 Windows 上:

      • 打开 证书管理器(CertMgr.msc)
      • 找到抓包工具的证书
      • 将其导入 “受信任的根证书颁发机构” 存储

    2. 更新抓包工具和证书

    • 确保你使用的抓包工具是最新版本。
    • 使用工具自带的 “Install SSL Certificates” 功能重新安装证书。

    3. 临时禁用抓包工具测试

    • 关闭抓包工具后,尝试重新连接目标网站或应用。
    • 如果连接恢复正常,说明问题确实与抓包工具有关。

    4. 配置开发环境信任证书(针对开发人员)

    • Node.js / Express 应用:

      process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
      

      注意:此设置仅用于开发环境,生产环境请勿使用

    • Android 应用:

      • 添加以下代码到 AndroidManifest.xml
        <application
            android:networkSecurityConfig="@xml/network_security_config"
            ...>
        </application>
        
      • 创建 res/xml/network_security_config.xml 文件:
        <?xml version="1.0" encoding="utf-8"?>
        <network-security-config>
            <domain-config>
                <domain includeSubdomains="true">yourdomain.com</domain>
                <trust-manager>
                    <certificates>
                        <certificate src="file:///android_asset/charles-ca.pem"/>
                    </certificates>
                </trust-manager>
            </domain-config>
        </network-security-config>
        
    • iOS 应用:

      • 在 Xcode 中,确保你的项目支持 App Transport Security (ATS)
      • 或者在 Info.plist 中添加:
        <key>NSAppTransportSecurityExceptionAllowsInsecureHTTPLoads</key>
        <true/>
        

    5. 检查系统时间是否正确

    • 如果系统时间不准确,会导致证书验证失败。
    • 确保系统时间与网络时间同步。

    6. 检查防火墙或杀毒软件设置

    • 暂时关闭防火墙或杀毒软件,看是否能解决问题。
    • 如果可以,可能是这些安全软件拦截了抓包工具的通信。

    三、常见遇到的场景(你可能也遇到过)

    | 场景 | 原因 | 解决方式 | |------|------|----------| | 访问 HTTPS 网站报错 | 抓包工具证书未信任 | 信任证书 | | Android 应用无法连接服务器 | 证书未加入信任链 | 配置 network_security_config | | iOS 应用提示证书无效 | 未信任抓包证书 | 在设置中信任证书 | | 开发环境报错 UNABLE_TO_VERIFY_LEAF_SIGNATURE | 未信任证书 | 设置 NODE_TLS_REJECT_UNAUTHORIZED=0 |


    四、总结

    如果你初步判断是抓包工具安装的证书导致的问题,那么这确实是一个非常常见的情况。建议你按照上述步骤逐一排查,尤其是 检查证书是否被系统信任更新抓包工具

    如果你能提供更具体的错误信息(如控制台日志、报错截图),我可以进一步帮你定位问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月19日