2016-09-14 64 views
0

这是我在主文件代码: 你能告诉我如何genrate BKS密钥库为Android应用程序在Android Studio中如何genrate BKS密钥存储在机器人工作室Android应用

OkHttpClient okHttpClient = new OkHttpClient(); 
    try { 
     KeyStore ksTrust = KeyStore.getInstance("BKS"); 
     InputStream instream = this.getResources().openRawResource(R.raw.keystore); 
     ksTrust.load(instream, "secret".toCharArray()); 

     // TrustManager decides which certificate authorities to use. 
     TrustManagerFactory tmf = TrustManagerFactory 
       .getInstance(TrustManagerFactory.getDefaultAlgorithm()); 
     tmf.init(ksTrust); 
     sslContext = SSLContext.getInstance("TLS"); 
     sslContext.init(null, tmf.getTrustManagers(), null); 

     okHttpClient.setSslSocketFactory(sslContext.getSocketFactory()); 
    } catch (KeyStoreException | IOException | NoSuchAlgorithmException | CertificateException | KeyManagementException e) { 
     Log.e(TAG,"in catch"); 
     Log.e(TAG,e.toString()); 

     e.printStackTrace(); 
    } 
+1

没有BKS它.JKS –

+0

但我要创建SSL证书BKS文件.. –

回答

1

使用此命令创建bks证书。

密钥工具-importcert -v -trustcacerts -file “path_to_cert/interm_ca.cer” -alias IntermediateCA -keystore “RES /原料/ myKeystore.bks” -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath“path_to_bouncycastle/bcprov-jdk16-145.jar” -storetype BKS -storepass mysecret

详细信息都在这里,

http://blog.antoine.li/2010/10/22/android-trusting-ssl-certificates/

+1

AFAIK如果您使用指定的旧版BouncyCastle,则此命令仅适用于今天。随着更新的版本,它不会工作,因为BouncyCastle的'BKS'实现已经改变。今天,您需要使用storetype'BKS-v1'。 – Robert

+0

然后解决方案@Robert –

+0

@prem nath使用最新的BouncyCastle版本,改变'storetype'和'providerpath'参数,如我所述。 – Robert