2017-06-01 15 views
1

Androidスタジオで自己署名入りの証明書を使用するウェブサイトに接続しようとしています。私は上のopenStream()を呼び出すURLオブジェクトのAndroidスタジオで自己署名証明書を受け入れるJavaコード

見つからない 証明書パスのトラストアンカー:私はエラー

java.security.cert.CertPathValidatorExceptionを取得しています。

私のコードはテスト環境にあるので、証明書のチェックを完全に無効にするか、明示的に証明書を許可するかのいずれかの解決策を探しています。

私は昨日ソリューションを探すのに数時間を費やしましたが、すべてのガイドは数年前であり、償却されたHTTPライブラリを使用しています。

答えて

0

@CommonsWareによる回答に加えて、API 14(ISC)以上を対象とする場合は、アプリケーションの外部で、追加の信頼できる証明書をデバイスにインストールするオプションがあります。指示はhereです。

この方法でインストールされた証明書は、デバイス上のすべてのアプリケーションで使用されます。

API 14-23では、ユーザーがインストールした証明書はデフォルトで信頼されます。ただし、API 24(Nougat)では、ユーザーが追加した証明書の処理が変更され、既定では信頼されません。信頼されたユーザー定義の証明書を作成するためには、network configに次のコードを追加します。

<network-security-config> 
     <base-config> 
      <trust-anchors> 
       <!-- Trust preinstalled CAs --> 
       <certificates src="system" /> 
       <!-- Additionally trust user added CAs --> 
       <certificates src="user" /> 
      </trust-anchors> 
     </base-config> 
</network-security-config> 

詳しい情報は、証明書の取り扱いに関連したヌガーの変化についてhereを見つけることができます。

+0

提案されている修正プログラムのどれも私のために働いていないようです。エミュレータ自体が証明書をブロックしているという私の問題ですか? Nexus 5エミュレータで証明書を追加する方法が見つかりません。 – Keifer

+0

@Keifer、emuletorの種類、OSのバージョン、試したものと失敗したものの詳細を質問に追加することをお勧めします – Vasiliy

関連する問題