2011-08-03 16 views
12

こんにちは仲間のアンドロイドコーダー。httpsの呼び出し時にバージョンキーストアが間違っています

私はAndroidのコードからhttpsの安全な呼び出しをしようとしています。コールはエミュレータ上でうまくいくが、実際のSamsung GalaxyデバイスではSSLエラーが発生する。

私は証明書を扱うためにクレイジーボブ法を使用しました。 ここにクレイジーボブリンク:http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.htmlです。

問題カスタムSSLSocketFactoryオブジェクトの内部に「間違ったバージョンのキーストア」というエラーが表示されます。

この問題を解決するための提案はありますか?おかげさまで

+0

[アンドロイドコールでキーストアのバージョンが間違っています](https://stackoverflow.com/questions/11117486/wrong-version-of-keystore-on-android-call) – Cukic0d

答えて

28

Bouncy Castleフォーマットでキーストアを作成しましたか? (BKSにする必要があり、特にキーストアのタイプ)のkeytoolとキーストアの作成時にすべてのこれらの3つのパラメータは必須です。

-storetype BKS 
    -provider org.bouncycastle.jce.provider.BouncyCastleProvider 
    -providerpath /path/to/bouncycastle.jar 

のAndroidは、キーストア を作成するときに、このバージョンを使用してください、はBouncyCastleのバージョン1.46を使用していますバージョン1.46が見つかりましたhere

0

誰かがこれに直面し、@Jcs優れた答えがそれを解決しません:私はまったく同じ問題を経験し、私は正しく私のWebサーバーにSSL証明書をインストールしていないことが判明。私はdigicert's SSL testing toolを使用するときにアイデアを得ました。私の証明書プロバイダは、中間CAでサーバー証明書に署名する一般的な方法を使用しました。証明書チェーン(発行者の中間CAをルートCAにリンクする)をインストールした後、すべて正常に機能しました。

0

簡単な選択肢は、BKSを生成するPortecleを使用することです:

  1. ダウンロードBoucycastle Provider 1.46
  2. ディレクトリ(例:C:\Program Files (x86)\Portecle\bcprov.jar)をインストールし、あなたのPortecleでbcprov.jarを交換してください。同じ命名が必要です。
  3. Portecleを再起動し、BKSトラストストアを生成します。

備考:問題はAndroid 4.0.3で発生し、修正されました。

さらに詳しい説明here

関連する問題