0

由于我在项目中使用 HTTPS url 使用 Asyn 任务,因此基于证书和域验证 SSL 证书,但最近收到来自 google play console 的警告。因此,请建议我需要实施哪些更改。

public void SSLValidation(Context ctx) throws Exception {

    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    InputStream  is = ctx.getResources().openRawResource(R.raw.newuatserver); // Place your 'your_cert.crt' file in `res/raw`
    Certificate ca;
    try (InputStream caInput = new BufferedInputStream(is)) {
        ca = cf.generateCertificate(caInput);

    }

    String keyStoreType = KeyStore.getDefaultType();

    KeyStore keyStore = KeyStore.getInstance(keyStoreType);
    keyStore.load(null, null);
    keyStore.setCertificateEntry("ca", ca);


    String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
    TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
    tmf.init(keyStore);

    SSLContext sslContext = SSLContext.getInstance("TLS");
    sslContext.init(null, tmf.getTrustManagers(), null);
    HostnameVerifier allHostsValid = new HostnameVerifier() {
        public boolean verify(String hostname, SSLSession session) {
            String str;
           str="*.uatapp.in";

            try {
                String principalName = ((X509Certificate)session.getPeerCertificates()[0]).getSubjectDN().getName().split(",")[0];

                if (principalName.contains("CN="))
               {
                String  paramString = principalName.trim().replaceAll("CN=", "");
                return str.contains(paramString);
               }

            } catch (SSLPeerUnverifiedException e) {
                return false;
            }
            return false;


        }

    };

    HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
    HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
}

发现您的应用使用了包含用户安全漏洞的软件。具有这些漏洞的应用程序可能会暴露用户信息或损坏用户的设备,并且可能会被视为违反我们的恶意行为政策。以下是在您最近提交的文件中检测到的问题列表和相应的 APK 版本。

  1. TrustManager 您可以在这篇 Google 帮助中心文章中找到有关 TrustManager 的更多信息。
  2. HostnameVerifier 您的应用程序正在使用 HostnameVerifier 接口的不安全实现。您可以在此 Google 中找到有关如何解决此问题的更多信息
4

0 回答 0