2011-11-07 20 views
2

私は「署名」の保護レベルを要求し、私の「に対するアクセスできるようになりますAndroid向け独自のAPI開発したい」アプリケーションをシステム証明書ストレージに独自の証明書をインストールするにはどうすればよいですか?

アイデアは以下の通りです:。

  1. 『』自分自身の証明書をインストールしますこのアプリケーションが署名されている場合、システムの証明書ストレージに
  2. サインがチェックされます私のAPIシステムへの任意のアプリケーションからの要求時に結果として自分の証明書

でアプリケーションを「信頼できます」適切な証明書で私の証明書がAndroidにインストールされていれば、すべてがうまくいくはずです。

私はこのアプローチのプロトタイプを作成しますが、それができないような明白な問題がある場合は、教えてください。

質問

(私たちは、Androidに自分自身を構築し、合理的な境界のシステムを()修正することができると仮定して)システム認証ストレージに独自の証明書をインストールするにはどのように?

ありがとうございました。

P.S.私はJava/Android開発にあまり慣れていないので、あなたが何か変わったことを見たら気にしないでください。

UPDATE:私は、それは(私の証明書によって署名された)私のすべてのアプリケーションにアクセスできるようになります私自身の証明書を使用して、私のAPIに署名した場合、私は、zeetoobikerの回答にコメントで書いたが、それは勝ったよう

システム権限はありません。そして、私はすべての「顧客」が「realmb.com/droidCert/」ウェブサイトにナビゲートすることを望んでいません。その代わりに、私は製造元が証明書をOSに追加するようにしたいと考えています。今は概念証明の作業に取り組んでいます。

答えて

0

私はあなたが証明書をインストールする必要はないと思います。

要求しているアプリケーションが許可を宣言アプリケーションと同じ証明書で署名されている場合にのみ、システム付与許可:署名用permission docsから

。証明書が一致すると、システムはユーザーに通知したり、ユーザーの明示的な承認を求めることなく許可を自動的に付与します。

これは、インストールした証明書ではなく、重要なアプリケーションに署名するために使用する証明書であることを意味します。同じ証明書でApp1とApp2に署名すると、その証明書は許可されます。別の証明書で署名されたApp 3がAPIにアクセスしようとすると、許可なし例外が発生します。

私のアプリのいくつかを見ているにもかかわらず、私はそれをしていないと認めなければなりません。デバイス/ルートへの必要なカスタマイズやアクセスなしで、バニラのAndroidで動作するはずです。

本当にルート証明書をインストールする必要がある場合は、thisが役立つかもしれませんが、私があなたが指定した目的のためにやっているとは思いません。

+0

こんにちはZeetoobiker、フィードバックありがとうございます。システムストレージに自分の証明書をインストールする必要があるのは、私のAPIにいくつかのシステム権限を持たせたいからです。自分の証明書でAPIに署名すると、自分の証明書で署名されたすべてのアプリケーションからアクセスできますが、システム権限はありません。そして、私のすべての「顧客」が「http://www.realmb.com/droidCert/」ウェブサイトに移動することは望ましくありません。その代わりに、私は製造元が証明書をOSに追加するようにしたいと考えています。今は概念証明の作業に取り組んでいます。 – Budda

+0

OSにコンパイルの段階でルート証明書をインストールする方法を知っていれば教えてください。どうもありがとうございました! – Budda

+0

申し訳ありませんが、特にウェブサイトへの誘導はお勧めしませんでしたが、ウェブサイト(これを実現する方法も提供しています)は、追加方法を示しています - システムブラウザにダウンロードしてインストールすることを意味しますデバイス自体からのものである必要があります)。 – zeetoobiker

関連する問題