Android Studio - 服务器证书过期导致抛出“错误:原因:无法找到请求目标的有效证书路径”。
创始人
2024-08-15 22:30:15
0

当使用Android Studio进行网络请求时,有时会遇到服务器证书过期的问题,导致抛出“错误:原因:无法找到请求目标的有效证书路径”的异常。以下是一种解决方法,其中包含了代码示例。

解决方法:

  1. 创建一个自定义的SSLSocketFactory类,用于处理证书验证的问题。在该类中,我们可以重新实现验证服务器证书的逻辑。
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

public class CustomSSLSocketFactory {
    public static void disableCertificateValidation() {
        try {
            TrustManager[] trustAllCerts = new TrustManager[]{
                    new X509TrustManager() {
                        public X509Certificate[] getAcceptedIssuers() {
                            return new X509Certificate[0];
                        }
                        public void checkClientTrusted(X509Certificate[] certs, String authType) throws CertificateException {}
                        public void checkServerTrusted(X509Certificate[] certs, String authType) throws CertificateException {}
                    }
            };

            SSLContext sc = SSLContext.getInstance("TLS");
            sc.init(null, trustAllCerts, new SecureRandom());
            HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

            HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
                public boolean verify(String hostname, SSLSession session) {
                    return true;
                }
            });
        } catch (NoSuchAlgorithmException | KeyManagementException e) {
            e.printStackTrace();
        }
    }
}
  1. 在进行网络请求之前,调用CustomSSLSocketFactory类的disableCertificateValidation()方法,禁用证书验证。
CustomSSLSocketFactory.disableCertificateValidation();

// 进行网络请求的代码示例
URL url = new URL("https://example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
...

通过以上方法,我们可以禁用Android Studio对服务器证书的验证,从而解决"错误:原因:无法找到请求目标的有效证书路径"异常。请注意,禁用证书验证存在安全风险,请在安全可靠的环境中使用。

相关内容

热门资讯

透视app!aapoker辅助... 透视app!aapoker辅助怎么用(透视)辅助(一贯存在有挂)1、aapoker辅助怎么用系统规律...
透视辅助!aapoker俱乐部... 透视辅助!aapoker俱乐部靠谱吗(透视)插件(本来真的有挂)aapoker俱乐部靠谱吗辅助器中分...
透视安卓版!aapoker怎么... 透视安卓版!aapoker怎么开辅助器(透视)透视插件(果然是有挂)1、aapoker怎么开辅助器透...
透视肯定!aapoker辅助器... 透视肯定!aapoker辅助器怎么用(透视)辅助(竟然是真的有挂)1、实时aapoker辅助器怎么用...
透视安卓版!aapoker透视... 透视安卓版!aapoker透视脚本入口(透视)插件(确实是真的有挂)aapoker透视脚本入口辅助器...
透视最新!aapoker安装包... 透视最新!aapoker安装包怎么使用(透视)辅助插件工具(其实真的有挂)亲,关键说明,aapoke...
透视数据!aapoker脚本怎... 透视数据!aapoker脚本怎么用(透视)脚本(原来真的是有挂)1、点击下载安装,aapoker脚本...
透视app!aapoker怎么... 透视app!aapoker怎么开辅助器(透视)插件下载(一直存在有挂)1、aapoker怎么开辅助器...
透视软件!aapoker ai... 透视软件!aapoker ai插件(透视)透视软件(确实存在有挂);1、aapoker ai插件系统...
透视能赢!aapoker免费透... 透视能赢!aapoker免费透视脚本(透视)万能辅助器(都是真的有挂)1、进入到aapoker免费透...