0

クライアントから提供された p12 ファイルと cer ファイルがあります。

サーバーに接続するために以下のコードを使用しましたが、常に SSSLHandshakeException を持っています:

KeyStore trustStore = KeyStore.getInstance("BKS");
            trustStore.load(R.raw.trustore), 
                    password.toCharArray());
            SSLSocketFactory sf = new MySSLSocketFactory(trustStore);
            HttpParams params = new BasicHttpParams();
            HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
            HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
            SchemeRegistry registry = new SchemeRegistry();
            registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
            registry.register(new Scheme("https", sf, 443));
            ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
            DefaultHttpClient defaultHttpClient=new DefaultHttpClient(ccm, params);

以下のコマンドを使用して trustore(.bks ファイル) を変換したことに注意してください。

keytool -genseckey -alias alias_name -keystore truststore.bks -providerclass org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath bcprov-jdk15on-149.jar -storetype BKS
4

1 に答える 1

0

正しい BKS ファイルを使用して問題を解決しました。私はこの問題で、一方的な問題だけを解決しようとしないでください。.p12 ファイルと .cer ファイルがある場合、正しい BKS ファイルを検証する方法はまだわかりません。ただし、接続を成功させるには、正しいキーストア ファイルである必要があります。以下は、BKS ファイルの変換に使用したコマンドです。

keytool -importkeystore -srckeystore xyz.p12 -srcstoretype BKS -destkeystore new-store.bks -deststore type BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath bcprov-jdk15on-149.jar
于 2015-09-03T08:35:47.790 に答える