2016-09-14 7 views
0

はこれがメインのファイルに私のコードは次のとおりです。 あなたはどのようにアンドロイドスタジオアンドロイドスタジオでアンドロイドアプリケーションのためBKSキーストアをgenrateする方法

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それは –

+0

.JKS、ここにある。しかし、私はSSL証明書のためBKSファイルを作成する必要があります。.. –

答えて

1

このコマンドを使用して作成するにはアンドロイドのアプリケーションのためBKSキーストアをgenrateに私を伝えることができますbks証明書。

のkeytool -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

私の知る限りBouncyCastleの指定された古いバージョンを使用している場合、このコマンドは今日のみ動作します。 BouncyCastleの 'BKS'実装が変更されたため、新しいバージョンでは動作しません。今日は代わりにストアタイプ 'BKS-v1'を使う必要があります。 – Robert

+0

それでは@Robert –

+0

@prem nathの解決策は、代わりに最新のBouncyCastleバージョンを使用して、私が説明した 'storetype'と' providerpath'引数を変更してください。 – Robert

関連する問題