6

異なるサーバー (http および https) から画像を取得するプロジェクトに取り組んでいます。

この Q/Aは Android 2.3の問題を回避するのに役立ちましNo peer certificate errorたが、Android 4 (>3) でこの問題 (" ") が発生しなかった理由がわかりNo peer certificate errorません。

私が間違っている場合は、私を修正してください:

  • Android 2.3 では、HTTPS 接続がすべての証明書チェック (およびハンドシェイク) を実行します。
  • Android > 3 では、ハンドシェイクが失敗した場合でも HTTPS 接続が確立されます (例: ピアとしての私のアプリには証明書がありません)。

Android のこれらのバージョンの違いは何ですか? Android 4 ではなく Android 2.3 ですべてを信頼する必要があるのはなぜですか?

なぜ Android 2.3 で次の例外が発生"javax.net.ssl.SSLPeerUnverifiedException: No peer certificate error" するのですか? Android 4 ではすべて正常に動作し、接続が確立されているのに?

Android Honeycombで導入された SNI Server Name Indicationに関連するものはすべてありますか?

4

1 に答える 1

2

あなたの認証機関はおそらく Android の 2.3.3 バージョンには記載されていませんが、4.x バージョンには記載されています。確認するには、両方のデバイスのキーストアを確認してください。

コマンドラインから ADB を使用すると、Android のキーストアをファイルにダンプし、その発行者がキーストアで利用可能かどうかを確認できます (ルートである必要がある場合があります)。adb pull /system/etc/security/cacerts.bks cacerts.bks

Portecle をダウンロードしてインストールします ( http://portecle.sourceforge.net/から)。File / Open Keystore... を選択し、cacerts.bks ファイルを選択します。Tools / Keystore Report を選択し、その情報をテキスト エディターにコピーして、Web ブラウザーから見つかった証明書で指定されている CN を探します。私の場合、「Cyber​​trust Public SureServer SV CA」からは見つかりませんでした。

コンピューターの Web ブラウザーでhttps://example.website.com/を使用して関心のある Web サイトを参照し、CN が誰であるかを調べます。上記のキーストアと比較してください。キーストアにない場合は、追加する必要があります。

注: Android 4.0 携帯電話では、証明書を保存する方法が異なるため、後述の cacerts.bks ファイルは使用しません。それらの場合、Web ブラウザーで目的の https サイトを開き、その方法で目的の証明書を追加できるはずです。

Facebook と redbox への接続に問題がありました。私の問題を解決し、Android 2.3.3 電話証明書を更新するために、Android 3.2 エミュレーターからコピーして電話に入れました。

  1. Android 3.2 仮想デバイスを作成して起動します。
  2. エミュレーターから cacerts.bks ファイルをコピーします (他のデバイスが接続されていないことを確認してください)。adb pull /system/etc/security/cacerts.bks cacerts.bks
  3. エミュレーターを切断します。
  4. 更新するデバイスを接続します (ルートである必要があります)。読み取り/書き込み機能のために、/system フォルダーを rw として再マウントする必要がある場合があります。取り付けの問題については、次を参照してください:このリンク
  5. デバイスから古い証明書ファイルのコピーを保存します: adb pull /system/etc/security/cacerts.bks cacerts.bks.old
  6. 更新された証明書ファイルをデバイスに置きます adb push cacerts.bks /system/etc/security/
  7. デバイスを再起動します
  8. 再接続して、新しい cacert ファイルがロードされたことを確認します。
于 2013-03-04T21:42:50.257 に答える