From 377866167c6f997ada5aa38c6e08fc697de61bd5 Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期三, 19 八月 2026 17:05:15 +0800
Subject: [PATCH] 增加验证证书

---
 app/src/main/java/com/driver/igotrip/netUtls/HttpManager.java |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/app/src/main/java/com/driver/igotrip/netUtls/HttpManager.java b/app/src/main/java/com/driver/igotrip/netUtls/HttpManager.java
index b146d0d..5386ee4 100644
--- a/app/src/main/java/com/driver/igotrip/netUtls/HttpManager.java
+++ b/app/src/main/java/com/driver/igotrip/netUtls/HttpManager.java
@@ -6,7 +6,9 @@
 import android.util.Log;
 
 import com.driver.igotrip.BuildConfig;
+import com.driver.igotrip.R;
 import com.driver.igotrip.base.Const;
+import com.driver.igotrip.base.MyApplication;
 import com.driver.igotrip.utils.LogUtils;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
@@ -15,11 +17,21 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.lang.reflect.Type;
+import java.security.KeyStore;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.TrustManagerFactory;
+import javax.net.ssl.X509TrustManager;
 
 import cn.sinata.xldutils.utils.SPUtils;
 import io.reactivex.Observable;
@@ -70,6 +82,44 @@
         }
     }
 
+    private SSLSocketFactory getSSLSocketFactory(X509TrustManager trustManager) {
+        try {
+            SSLContext tls = SSLContext.getInstance("TLS");
+            tls.init(null, new TrustManager[]{trustManager}, null);
+            return tls.getSocketFactory();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    private X509TrustManager createTrustManager(int certificateResId) {
+        try {
+            CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
+            try (
+                    // 读取证书文件
+                    InputStream inputStream = MyApplication.Companion.getAppContext().getResources().openRawResource(certificateResId)
+            ) {
+                X509Certificate certificate = (X509Certificate) certificateFactory.generateCertificate(inputStream);
+
+                // 创建包含该证书的KeyStore
+                KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
+                keyStore.load(null, null);
+                keyStore.setCertificateEntry("server", certificate);
+
+                // 创建TrustManager
+                TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
+                trustManagerFactory.init(keyStore);
+                return (X509TrustManager) trustManagerFactory.getTrustManagers()[0];
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
     /**
      * 初始化数据
      *
@@ -80,6 +130,13 @@
         builder.connectTimeout(3, TimeUnit.MINUTES);
         builder.readTimeout(3, TimeUnit.MINUTES);
         builder.writeTimeout(3, TimeUnit.MINUTES);
+        X509TrustManager trustManager = createTrustManager(R.raw.star_gopost_ci);
+        if (trustManager != null) {
+            SSLSocketFactory sslSocketFactory = getSSLSocketFactory(trustManager);
+            if (sslSocketFactory != null) {
+                builder.sslSocketFactory(sslSocketFactory, trustManager);
+            }
+        }
 //        builder.addInterceptor(new Interceptor() {
 //            @Override
 //            public Response intercept(Chain chain) throws IOException {

--
Gitblit v1.7.1