2016-05-17 66 views
6

自分のサーバーの自己署名証明書を生成しました。 その後、[設定] - > [セキュリティ] - > [インストール]の順にAndroidに追加します。Androidで自己署名証明書を信頼する方法

私はアプリケーションで自分のサーバーに接続しようとしているとき、私はエラーになっている:私は、私はそれが私のサーバーで正常に動作するか、多分私べきで、信頼する証明書を追加した後に理解できるように

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

を何かが足りない? Androidシステム経由で証明書を追加し、アプリケーションコードを変更しないでください。

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

+0

可能な複製: http://stackoverflow.com/questions/25509296/trusting-all-certificates-with-okhttp – shilch

+2

いいえ、そうではありません。私はすべての証明書を信頼したくありません... –

+0

CA証明書をインポートしましたか? – shilch

答えて

2

自己署名入りの証明書を生成する際には、証明書を証明する権限を付与するために、自己署名証明書としてマークする必要があります。

これはbasicConstraints拡張で行われ、CA:FALSEの代わりにCA:TRUEと宣言されています。証明書をインポートすると、Androidではユーザーがインストールしたルート証明書とみなされ、資格情報のストレージ>信頼された資格情報>USERの下に表示されます。

しかし、このビットを持つ証明書は強力な力であり、そのような証明書は過去に暗号化されたユーザー通信を盗んでしまうために悪質なツールによって使用されていました。したがって、最近、Google Play Protectでは、この種のCA証明書が有効になっているときにユーザーと話をしたいと考えています。

+0

ありがとうございます。あなたはそれを釘付け! – Zectbumo

関連する問題