Android Https error Not trusted server certificate

前端 未结 2 452
北恋
北恋 2021-01-03 16:49

In my situation when I run programm on emulator - its work correktly. But when I install apk to phone - have error Not trusted server certificate. What is the problem?

2条回答
  •  盖世英雄少女心
    2021-01-03 17:21

    You can override certificate of webserver by using addSLLCertificateToHttpRequest() method. Call addSLLCertificateToHttpRequest() method before communicating with your server. This will avoid certificate invalidation and always return true. I am writing this method. This is working for me

    /**
     * The server has a SSL certificate. This method add SSL certificate to HTTP
     * Request
     */
    public static void addSLLCertificateToHttpRequest() {
        // Code to use verifier which return true.
        try {
            SSLContext sslctx = null;
            try {
                sslctx = SSLContext.getInstance("TLS");
                sslctx.init(null, new TrustManager[] { new X509TrustManager() {
                    public void checkClientTrusted(X509Certificate[] chain, String authType)
                    {
                    }
    
                    public void checkServerTrusted(X509Certificate[] chain, String authType)
                    {
                    }
    
                    public X509Certificate[] getAcceptedIssuers() {
                        return new X509Certificate[] {};
                    }
                } }, null);
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
            HttpsURLConnection.setDefaultSSLSocketFactory(sslctx.getSocketFactory());
            HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
                public boolean verify(String hostname, SSLSession session) {
                    return true;
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    
    }
    

提交回复
热议问题