2016-09-14 66 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