2015-11-11 12 views
9

反応しているネイティブアプリでfetch関数を使用しているとき、iOSで正常に動作しますが、Androidでエラーが発生します。エラーは 'TypeError:Network request failed'です。デバッグを少し行うと、エラーの原因が次のようになることがわかりました: 'java.security.cert.CertPathValidatorException:証明書パスの信頼アンカーが見つかりません'。Fetch in in ssl with android

これはiOSでどのように動作し、アンドロイドではなく、どのようにして最高の修正を行うのですか?断層がネイティブに反応するか、どこかに深く入り込んでいますか?

+1

役立ちます。フェッチしようとしているサーバーは何ですか?このWebサイトhttps://www.digicert.com/help/または実行中のサーバーのSSL証明書を確認してください。 openssl s_client -debug -connect www.thedomaintocheck.com:443 – Orlando

+0

これらは2つの別個のデバイスです。 iOSが信頼を確立している可能性があります。 – vijayst

答えて

1

ここで言及したこの問題のいくつかの回避策があります:Trust Anchor not found for Android SSL Connection

ただし、サーバーの所有者であれば。私はあなたのサーバーSSL証明書を確認することをお勧めします。あなたのpemファイルにCA証明書がないためだと思います。 私が自分のサイトで行ったことは、file.crtとfile.ca-bundleの内容をその順序で連結してfullchain.pemを作成したことです。

次に、nginx(nginxの背後にある私のサーバ)を次のように設定します。 ssl_certificate /etc/nginx/ssl/fullchain.pem;

元の文書:https://www.digicert.com/ssl-certificate-installation-nginx.htm

希望それはおそらく、サーバ証明書の問題だ