アプリケーションへの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ファイルが復元されました。キーストアを適切な方法で作成し、接続に使用するにはどうすればよいですか。