2016-04-23 10 views
7

Debug apk funktioniert gut, die die üblichen Verdächtigen ausschließt, aber wenn ich baue, unterschreiben, installieren Sie die Release-Version, keine https $ http API-Aufrufe können von eckigen gemacht werden (http an denselben Endpunkt, den ich zum Debuggen zugelassen habe, funktioniert).HTTPS blockiert für Ionic Build - Release Android apk

cordova weißen Liste installiert ist ionic plugin add cordova-plugin-whitelist

manifest.xml enthält die korrekten Richtlinien

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

Ionic config.xml die korrekten Richtlinien enthält

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

Meine index.html deklariert eine permissive Inhalt-Sicherheits-Richtlinie:

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

Ich habe auch meine Zwischenzertifikatkette mit zwei verschiedenen Online-SSL-Checkern überprüft - sie sind in Ordnung.

Ich bin total ratlos. Irgendwelche Ideen?

Antwort

4

Re-Anwendung SSL-Zertifikate unter besonderer Berücksichtigung intermediärer Zertifikate.

Trotz https://cryptoreport.websecurity.symantec.com/checker/ und drei weitere SSL Kontrolleure mein SSL-Zertifikate waren in Ordnung, nur sagen, dass ich auf Nummer sicher zurückgesetzt und konfiguriert wir meine AWS Elastic Load Balancer SSL-Einstellungen gewährleistet ich die (sagt optional, aber nicht optional) Zwischen cert eingeschlossen hatte, und das Problem ging danach weg.

+0

Wir haben ähnliche Problem (auf einigen Androids aber nicht die anderen, die rätselhaft ist). Ich fand [SSL-Checker] (https://www.sslchecker.com/sslchecker) beschwert sich über die Zertifikatskette (als einziger SSL-Checker), und "openssl s_client -showcerts -connect yourhost.com: 443" zeigt, dass die Kette in ist Tatsache dort, aber druckt "Überprüfen Sie Return-Code: 19 (selbstsigniertes Zertifikat in der Zertifikatskette)". –

+0

@ jakub.g Ich hatte das gleiche Problem und um es zu beheben, musste ich den Kundendienst meiner CA per E-Mail schicken und sie gaben mir die richtigen Root- und Intermediate-Zertifikate. COMODO hatte mehrere Root-Zertifikate auf ihrer Website und ich benutzte nur die falsche. – chrispytoes

+0

In unserem Fall erwies sich das Problem als [ein Fehler in Chromium] (http://android.stackexchange.com/questions/164066/how-to-explain-ssl-cert-validation-discrepancy-between-chrome-and) -webview-on-am) - endlich haben wir von Symantec cert auf Comodo cert gewechselt und es hat das Problem gelöst –

1
Modify this function in SystemWebViewClient.java found in 

Plattformen \ android \ CordovaLib \ src \ org \ Apache \ cordova

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); 
    } 
} 

Dies wird ignoriert, wenn eine SSL-Fehler gibt es auf Dritte unterzeichnet selbst generierte Zertifikate aufgetreten. Lesen Sie im Detail here

+0

Dies ist nicht wirklich eine Lösung, sondern eher eine Arbeit. Wie der Link sagt, sollten Sie dies nicht in einer Produktions-App verwenden. –

+0

Dies wird ignoriert, wenn ein SSL-Fehler auf von Dritten signierten, selbst erzeugten Zertifikaten auftritt. Ich habe den Grund angegeben. Wenn das SSL nicht selbstsigniert ist, wird es keinen Fehler darstellen. –

Verwandte Themen