2016-04-23 10 views
7

apkはうまく動作しますが、通常の疑わしいものは除外されますが、ビルド、サイン、リリースバージョンのインストール時には、https $ http APIコールはangle私がデバッグを許可した同じエンドポイントに、動作します)。HTTPSでIonicビルドがブロックされています--release android apk

コルドバホワイトリストがインストールされている ionic plugin add cordova-plugin-whitelist

manifest.xmlには、正しいディレクティブ

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

イオンのconfig.xmlには、私のindex.htmlには許容を宣言

<access origin="*"/> 
    <allow-navigation href="*" /> 

正しいディレクティブが含まれて含まれていますコンテンツセキュリティポリシー:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"> 

また、2つの異なるオンラインSSLチェッカーを使用して自分の中間証明書チェーンを確認しました。

私は完全に困惑しています。何か案は?

答えて

4

仲介証明書を含むように特別な注意を払ってSSL証明書を再適用します。

https://cryptoreport.websecurity.symantec.com/checker/と私のSSL証明書がうまくいっているという3つの他のSSLチェッカーにもかかわらず、私はAWS Elastic Load Balancer SSL設定をリセットして設定しましたが、(オプションですがオプションではありません)その後問題は解消しました。アンドロイド\

+0

私たちは同様の問題を抱えています(いくつかのアンドロイドでは困惑しています)。私は[SSLチェッカー](https://www.sslchecker.com/sslchecker)が(唯一のSSLチェッカーとして)証明書チェーンについて不平を言っていて、 'openssl s_client -showcerts -connect yourhost.com:443'はチェーンがそこにはありますが、 'Verify return code:19(証明書チェーンの自己署名証明書)'を表示します。 –

+0

@ jakub.g私はこの同じ問題を抱えていました。それを修正するために、CAのカスタマーサポートに電子メールを送り、使用する適切なルート証明書と中間証明書を私に渡しました。 COMODOは自分のウェブサイトに複数のルート証明書を持っていましたが、間違った証明書を使っていました。 – chrispytoes

+0

私たちの場合、問題は[Chromiumのバグ](http://android.stackexchange.com/questions/164066/how-to-explain-ssl-cert-validation-discrepancy-between-chrome-and)と判明しました-webview-on-am) - 最後にシマンテックの証明書をComodoの証明書に切り替えました。これは問題を解決しました –

1
Modify this function in SystemWebViewClient.java found in 

プラットフォーム\ CordovaLib \ SRC \ orgの\ apacheの\コルドバ

public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { 
    final String packageName = this.cordova.getActivity().getPackageName(); 
    final PackageManager pm = this.cordova.getActivity().getPackageManager(); 

    ApplicationInfo appInfo; 
    try { 
    appInfo = pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA); 
    if ((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) { 
     // debug = true 
     handler.proceed(); 
     return; 
    } else { 
     // debug = false 
     // THIS IS WHAT YOU NEED TO CHANGE: 
     // 1. COMMENT THIS LINE 
     // super.onReceivedSslError(view, handler, error); 
     // 2. ADD THESE TWO LINES 
     // ----> 
     handler.proceed(); 
     return; 
     // <---- 
    } 
    } catch (NameNotFoundException e) { 
    // When it doubt, lock it out! 
    super.onReceivedSslError(view, handler, error); 
    } 
} 

任意のSSLエラーがある場合、これは無視します第三者に発生した自己生成された証明書に署名しました。 詳細を読むhere

+0

これは実際の解決策ではなく、もっと回避する方法です。リンク状態のため、これを運用アプリで使用しないでください。 –

+0

サードパーティの署名付き自己生成証明書にSSLエラーが発生した場合、これは無視されます。私はその理由を述べました。 SSLが自己署名されていない場合、エラーは発生しません。 –

関連する問題