WebベースのAPIサービスを呼び出すAndroid Studioプロジェクト。サービスコードがdev、qa、prodなどにある場合。新しい機能/バグ修正/などをテストするためのボックス。
エラーのため返信なし:
javax.net.ssl.SSLHandshakeException:チェーンの検証に失敗しました
com.Android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.Java:361)で
DERエンコードされた秘密キーなしで、サービス開発者のマシンから自己署名証明書をエクスポートしました。エミュレータにドロップして「インストール」しましたが、これは機能しませんでした。
上記の同じ証明書を取り、エミュレートされたSDカードにコピーしました。その後、エミュレータのセキュリティ設定からインストールされます。同じ結果。チェーンの検証に失敗しました。
今、私のセキュリティ/証明書の知識は非常に基本的です。エラーは実際に問題を説明していると思います。自己署名証明書にはチェーンがありません...しかし、私は間違っている可能性があります。
とにかく、これを回避するにはどうすればよいですか?
Androidコードを実行し、テスト/デバッグなどの開発者ボックスにアクセスできるようにしたい.
このような投稿を読んだのは、オープンSSLなどのサイトをブロックしている企業環境を持っているためだけです.
WebViewを介してサービスにアクセスしています。
この問題の原因は、デバイスの日付時刻が間違っている可能性があります
私は得ていました
javax.net.ssl.SSLHandshakeException: Chain validation failed
そして
Java.security.cert.CertPathValidatorException: Response is unreliable: its validity interval is out-of-date
私のために働いた解決策は、Virtual Device Manager-> Actionsドロップダウン-> Cold Boot Nowでエミュレータをコールドブートすることでした
エミュレータを再起動するだけでこのエラーは解決しました。エミュレータメニューの電源オフボタンを長押しして、再起動を選択します。
私はこれが古い質問であることを知っていますが、完全に異なる解決策で、同様の問題がありました。
SSLの有効期限が切れていないことを確認してください。この問題を修正すると、「javax.net.ssl.SSLHandshakeException:Chain validation failed」エラーが発生しなくなりました。他の問題もありましたが、それは別のスレッドです。
これは明らかな解決策のように聞こえますが、それは検討するべきものであり、必ずしも人々の心の最初のものではありません。
エミュレータのすべてのデータを消去し、再度起動して、アプリをインストールすると、すべてが機能しました。しかし、他の解決策を見た今、それはやり過ぎかもしれないと思う。