【问题标题】:Android X509TrustManager app rejected google playAndroid X509TrustManager 应用拒绝谷歌播放
【发布时间】:2016-06-03 18:28:09
【问题描述】:

应用程序运行正常,但在上传应用程序时,它在 Google Play 控制台中出现以下错误

漏洞信任管理器 要正确处理 SSL 证书验证,请更改自定义 X509TrustManager 接口的 checkServerTrusted 方法中的代码,以在服务器提供的证书不符合您的期望时引发 CertificateException 或 IllegalArgumentException。要确认您已正确更新,请将更新后的版本提交到开发者控制台并在五小时后回来查看。如果应用程序未正确升级,我们将显示警告。 如需更多信息和后续步骤,请参阅这篇 Google 帮助中心文章。

我使用以下代码进行 API 调用

    DefaultHttpClient client=null;
    try {
        SchemeRegistry schemeRegistry = new SchemeRegistry();
        // http scheme
        schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
        // https scheme
        schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443));

        HttpParams mHttpParams = new BasicHttpParams();
        mHttpParams.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 30);
        mHttpParams.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, new ConnPerRouteBean(30));
        mHttpParams.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false);
        HttpProtocolParams.setVersion(mHttpParams, HttpVersion.HTTP_1_1);
        ClientConnectionManager cm = new ThreadSafeClientConnManager(mHttpParams, schemeRegistry);
        client = new DefaultHttpClient(cm, mHttpParams);
    } catch (Exception e) {
        e.printStackTrace();
        client = new DefaultHttpClient();
    }

我的网址是基于 HTTP 的 IP

我在下面使用了 X509TrustManager x509trustmanager-from-google trusting-all-certificates-using-httpclient

【问题讨论】:

  • 我将首先摆脱您的 SchemeRegistry register() 呼叫和支持类(例如,EasySSLSocketFactory)。
  • @CommonsWare 不明白你的意思你能解释一下吗?

标签: android ssl x509certificate


【解决方案1】:

这是一个警告,您使用不安全的X509TrustManager 和空的checkClientTrusted()checkServerTrusted() 方法。这些方法假设检查客户端和服务器证书作为 HTTPS 合同的一部分,如果给定的证书无效则抛出异常。通过将这些方法保留为空,您有点破坏了整个 HTTPS 安全性,因为您的代码将接受任何证书。例如,您的应用容易受到a man in the middle attack 的攻击。这种空的实现几乎和普通的 HTTP 一样。

使用SSLSocketFactory.getSocketFactory() 而不是new EasySSLSocketFactory() 可以解决问题。您的应用连接的服务器必须具有有效的 CA 签名证书。

【讨论】:

  • 谢谢你,但问题是由于 ACRA 和 Flurry 我已经删除了这两个库,现在可以上传了
【解决方案2】:

最后问题是由于 ACRA lib 我已经删除了 ACRA 和 Flurry
Google Play 应用上传成功 Answer

【讨论】:

    猜你喜欢
    • 2015-11-12
    • 2020-02-12
    • 1970-01-01
    • 2015-09-28
    • 2020-12-11
    • 1970-01-01
    • 2012-01-24
    • 2019-06-29
    • 2021-12-18
    相关资源
    最近更新 更多