web-dev-qa-db-ja.com

Androidで自己署名証明書を信頼する方法は?

サーバー用の自己署名証明書を生成しました。次に、それをAndroid with Settings-> Security-> Installに追加しました。

アプリケーションからサーバーに接続しようとすると、エラーが発生します。

Java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

信頼できるもののリストに証明書を追加した後に理解すると、それは正常に動作するはずです。何か不足していますか?アイデアは、Androidシステムを通じてアプリケーションコードを変更せずに証明書を追加することです。

ところで、ネットワーク接続にOkHttpClientを使用しています。多分私はhttps接続のために何かを有効にする必要がありますか?

9
Orest

Androidは、自己署名証明書を生成するときに、自分自身に署名するだけで証明書を発行する場合でも、証明書を認証する権限を与えるために、認証局としてマークすることが重要です。それ自体であると。

これはbasicConstraints拡張で行われ、デフォルトのCA:TRUEではなくCA:FALSEを宣言します。このようにマークされた証明書をインポートすると、Androidはそれをユーザーがインストールしたルート証明書と見なし、Credential storage>信頼できる資格情報>[〜#〜] user [〜#〜]

ただし、このビットを持つ証明書は強力な力であり、このような証明書は、過去に暗号化されたと思われるユーザー通信をスパイするために悪意のあるツールによって使用されてきました。したがって、最近では、この種のCA証明書が有効になっている場合、Google PlayプロテクトはユーザーにWordを提供したいと考えています。

3
dig