有多种方法可以解决您的问题,但这是我使用的一种方法:所有步骤都在此链接中http://blog.antoine.li/2010/10/22/android-trusting-ssl-certificates/  但有些部分可能会感到困惑,所以我将解释所有过程:
1.-将 mycrtfile.crt 存储在已知路径中,我会说 c:BKS/mycrtfile.crt。
2.-要创建您的 BKS 或密钥库,您需要文件 bcprov-jdk15on-146.jar,这个类将为我们完成所有工作,有不同的版本,但这个适用于我http://www.bouncycastle .org/download/bcprov-jdk15on-146.jar也将此文件存储到 C:BKS/
3.-现在您将使用 Keytool(keytool 随附于 Java SDK。您应该在包含 javac 的目录中找到它)来生成我们的密钥库并确保它正在工作,进入您的 cmd 并输入“Keytool”,您将看到可用的命令,这意味着正在运行,或者您可以通过“C:\Program Files (x86)\Java\jre7\bin>keytool”访问。
4.-现在一切就绪,我们可以使用以下命令行生成密钥库:
keytool -importcert -v -trustcacerts -file "c:\BKS/mycrtfile.crt" -alias 证书 -keystore "c:\BKS/keystore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "c: \BKS/prov-jdk15on-146.jar" -storetype BKS -storepass mysecret
让我们看看这一行是什么(这部分我真的很困惑): -"c:\BKS/mycrtfile.crt" :这是您的证书的路径。-"c:\BKS/keystore.bks" 这是我们将存储密钥库的路径,您可以更改我使用密钥库的输出名称,只需确保扩展文件为 .bks -"c:\BKS /prov-jdk15on-146.jar":这是我们文件的路径,它将完成所有工作。-mysecret:这是使用密钥库的密码,您将需要此密码,所以不要忘记这一点。
已编辑:
 
4.1-还使用此命令行来验证证书是否已正确导入密钥库:
keytool -list -keystore "res/raw/Keystore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "c:\BKS/prov-jdk15on-146.jar" -storetype BKS -storepass mysecret
4.2-在此之后你应该看到这样的输出:
RootCA,22.10.2010,trustedCertEntry,指纹(MD5):24:77:D9:A8:91:D1:3B:FA:88:2D:C2:FF:F8:CD:33:93 IntermediateCA, 22.10.2010, trustCertEntry, Thumbprint (MD5): 98:0F:C3:F8:39:F7:D8:05:07:02:0D:E3:14:5B:29:43
这意味着它已正确导入。
5.- 在此之后,如果您转到您的 BKS 文件夹,您将看到一个 Keystore.bks 文件,这意味着我们正在路上。
6.- 现在让我们进入 ANDROID 部分。在您的项目中检查您是否有“原始”文件夹,如果没有在 res 下创建此文件夹,则它必须位于 Yourproject/res/raw 中。
7.-将您的 Keystore.bks 文件复制到原始文件夹中。现在一切就绪,让我们进入代码。
8.--- 现在我们将创建一个类来读取和信任我们的 Keystore:
import java.io.InputStream;
import java.security.KeyStore;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.SingleClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import com.futureconcepts.anonymous.R;
import android.content.Context;
public class Client extends  DefaultHttpClient   {
final Context context;
  public Client(Context context) {
      this.context = context;
  }
  @Override
  protected ClientConnectionManager createClientConnectionManager() {
      SchemeRegistry registry = new SchemeRegistry();
      registry.register(new Scheme("http", 
      PlainSocketFactory.getSocketFactory(), 80));
      // Register for port 443 our SSLSocketFactory with our keystore
      // to the ConnectionManager
      registry.register(new Scheme("https", newSslSocketFactory(),443));
    HttpParams httpParams = new BasicHttpParams();
     HttpConnectionParams.setConnectionTimeout(httpParams,9000);
     HttpConnectionParams.setSoTimeout(httpParams, 9000);
      return new SingleClientConnManager(httpParams, registry);
  }
  private SSLSocketFactory newSslSocketFactory() {
      try {
          // Get an instance of the Bouncy Castle KeyStore format
            KeyStore trusted = KeyStore.getInstance("BKS");//put BKS literal  
            // Get the raw resource, which contains the keystore with
            // your trusted certificates (root and any intermediate certs)
            InputStream in =context.getResources().openRawResource(R.raw.keystore);
            try {
                // Initialize the keystore with the provided trusted certificates
                // Also provide the password of the keystore
                trusted.load(in, "mysecret".toCharArray());
            } finally {
                in.close();
            }
          // Pass the keystore to the SSLSocketFactory. The factory is responsible
          // for the verification of the server certificate.
          SSLSocketFactory sf = new SSLSocketFactory(trusted);
          // Hostname verification from certificate
           sf.setHostnameVerifier(SSLSocketFactory.STRICT_HOSTNAME_VERIFIER);
          return sf;
      } catch (Exception e) {
          throw new AssertionError(e);
      }
  }
}
9.我们现在做了一个请求,只需这样做: HttpClient client= new Client(this); ///设置你的Httpclient。
现在就是这样,您将只信任您的证书。我希望这个解释能帮助你或任何有同样问题的人。