1

アプリケーションへのhttps接続を実装する必要があります。最初に、すべての証明書を信頼するクラスを実行しましたが、非効率的であると読みました。それから私はkystoreを使ってsererからの鍵を保存することにしました。私はコマンドpromtpでそのようにそれを作成しようとします:

keytool -genkey -alias myproject -keystore C:/myproject.keystore 
-storepass myproject -storetype BKS -provider     
org.bouncycastle.jce.provider.BouncyCastleProvider

しかし、私がこのように使いたいとき:

protected static org.apache.http.conn.ssl.SSLSocketFactory createAdditionalCertsSSLSocketFactory() {
        try {


            final KeyStore ks = KeyStore.getInstance("BKS");

            // the bks file we generated above
            final InputStream in = context.getResources().openRawResource( R.raw.myproject);  
            try {
                // don't forget to put the password used above in strings.xml/mystore_password
                ks.load(in, context.getString( R.string.mystore_password ).toCharArray());
            } finally {
                in.close();
            }

            return new AdditionalKeyStoreSSLSocketFactory(ks);

        } catch( Exception e ) {
            throw new RuntimeException(e);
        }
    }

、res / raw derictoryからキーストアにアクセスできませんが、res /rawderictoryに入れました。また、Rファイルが削除されました... Portecleインターフェイスで実装しようとしましたが、同じ問題に直面しました-res / rawデリケートからキーストアに到達できず、プロジェクトRファイルをビルド/クリーンアップしようとしたときに削除されました。キーストアファイルを削除すると、Rファイルが復元されました。キーストアを適切な方法で作成し、接続に使用するにはどうすればよいですか。

4

0 に答える 0