2

SSLCertificateSocketFactoryのドキュメントを見ると、そのファクトリを使用してそのようなインスタンスを取得する方法がわかりません。

つまり、コンストラクターの使用は非推奨です。推奨されるのは、または...getDefault()を返すだけです。SocketFactorySSLSocketFactory

しかし、SSLCertificateSocketFactoryを返すメソッドはありません。

一部のユースケースでは SSLSocketFactory を使用できると思いますが、setTrustManagers()検証のためにオプションでサーバー証明書のフィンガープリントを使用するなど、 SSLCertificateSocketFactory 機能の使用に興味があります。

したがって、私の質問です。

4

3 に答える 3

1

確かに、 SSLCertificateSocketFactory が何のためにここにあるのか正確にはわかりません。なぜなら、あなたが言及したように、ファクトリは期待どおりではないからです。確かに、あなたは自分のやり方でタイプキャストすることができますが、なぜそれをしたいのでしょうか.

SSLContext.getInstance("TLS") を選択するか、API 9 以降のみを対象とする場合は getDefault() を選択し、SSLContext.init() を使用して TrustManagers を設定します。

于 2013-01-09T17:08:25.310 に答える
0

matheszabiによって提案されたリンクを参照してください

protected 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.mystore);  
    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 AdditionalKeyStoresSSLSocketFactory(ks);

} catch( Exception e ) {
    throw new RuntimeException(e);
}
}
于 2012-12-08T16:40:41.140 に答える
0

あなたが何をしたいのかわからない、それはすべての解決策に適しているわけではありません.

ここにあるすべての人を信頼するためのソリューションです。何を変更する必要があるかを理解できます。

それが役立つことを願っています!

于 2012-12-08T16:33:57.333 に答える