Dem Zertifikat wird vom PC vertraut, aber nicht von Android

Lesezeit: 7 Minuten

Benutzer-Avatar
Alexis

Seit heute Morgen wird meinem Zertifikat auf Android nicht mehr vertraut und meine Anwendung kann dann keine Verbindung mehr herstellen:

 Catch exception while startHandshake: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
 return an invalid session with invalid cipher suite of SSL_NULL_WITH_NULL_NULL
 javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
    at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:137)
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
    at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:591)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:807)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:781)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:770)

Wenn ich es in Google Chrome (auf dem PC) versuche, gibt es kein Problem und das Zertifikat ist vertrauenswürdig, aber wenn ich es im Chrome-Browser auf Android versuche, sagt es mir, dass das Zertifikat nicht vertrauenswürdig ist. Was kann ich machen?

  • Sie kommunizieren mit einem gesicherten Server, dh (Https)?

    – Mohsin Naeem

    5. Juli 2012 um 8:16 Uhr

  • Ja, in der Tat, versuchen Sie einfach den Link, Sie werden das Zertifikat sehen

    – Alexis

    5. Juli 2012 um 8:19 Uhr

Benutzer-Avatar
Luceo

Möglicherweise fehlt ein Zwischenzertifikat in Ihrer Zertifikatsdatei. Wenn Sie bereits eine andere Website mit demselben Zertifikatsanbieter besucht haben, wird das Zwischenzertifikat in Ihrem Browser gespeichert. Dies ist möglicherweise nicht – oder noch besser – nicht bei jedem Besucher Ihrer Website der Fall. Um ein fehlendes Zwischenzertifikat in der SSL-Verbindung zu beheben, müssen Sie das Zwischenzertifikat zu Ihrer eigenen Zertifikatsdatei hinzufügen.

GoDaddy hat einige Informationen zu den Zwischenzertifikaten (aber die beste Quelle ist immer Ihr Zertifikatsanbieter):
http://support.godaddy.com/help/article/868/what-is-an-intermediate-certificate

Ich hatte einmal diese Ausgabe eines Zwischenzertifikats (auch mit Commodo) und musste meine eigene Zertifikatsdatei mit den Zwischenzertifizierungsstellen kombinieren, um zu arbeiten. Danach traten keine Fehler mehr auf.

Installationsanleitung per Webserver von Godaddy: http://support.godaddy.com/help/article/5346/installing-an-ssl-server-instructions?locale=en

Und hier ist eine Liste der gängigsten Installationsanleitungen von Commodo selbst:
https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/1145/0/how-do-i-make-my-own-bundle-file-from-crt-files

Je nachdem, welchen Webserver Sie verwenden, müssen Sie alle Zertifikate (Domänenzertifikat, Intermediate und Root) in der folgenden Reihenfolge angeben oder zu einem kombinieren (z. B. für Nginx):

  1. Domänenzertifikat
  2. Zwischenzeugnis
  3. Root-Zertifikat

Eine einfache Möglichkeit, dies in einem SSH-Terminal zu tun, besteht darin, Folgendes einzugeben:

cat domainfile intermediatefile rootfile > targetfile

Zertifikat-Test-Tool

Wenn Sie auf weitere Probleme stoßen oder sich nicht sicher sind, ob das Zertifikat korrekt ist, versuchen Sie es bitte mit einem Online-Tool, um Ihr SSL-Zertifikat zu überprüfen. Zum Beispiel: networking4all.com/en/ssl+certificates/quickscan

SNI-Unterstützung für Android 2.2 und niedriger

Bitte beachten Sie, dass Android 2.2 (und wahrscheinlich älter) kein SNI unterstützen, wodurch mehrere SSL-Zertifikate für verschiedene Hostnamen problemlos auf einer einzigen IP-Adresse funktionieren können. Vielen Dank an @technyquist für die Bereitstellung dieser Informationen. Weitere Informationen zu diesem Problem finden Sie in dieser SO-Frage zu SNI.

  • +1, das hat bei meinem Problem mit 2.3.X-Geräten funktioniert, da sie anscheinend ein Problem mit der Reihenfolge der verketteten Überprüfung haben (ich bin ziemlich noob, wenn es um Zertifikate geht) und indem ich dieses neue Paket mit der richtigen Reihenfolge habe (über die Kombination wie @Luceos vorgeschlagen hat) funktionierte wie ein Zauber. Vielen Dank

    – Armando

    16. Januar 2014 um 17:06 Uhr

  • Gerne, wir nutzen es auch regelmäßig. Vor allem, weil es mehr als nur ein Zwischenzertifikat validiert. Freut mich, dass ich helfen konnte.

    – Luceo

    23. September 2014 um 7:20 Uhr

  • Der Link zu Comodo ist tot

    – ggesichtslos

    30. Juni 2015 um 8:24 Uhr

  • Danke für die Erklärung. Ich habe ein Thawte-Zertifikat und musste mich auf deren Website anmelden und auf „Bestellinformationen anzeigen“ klicken. Die versendete E-Mail enthält einen Link, über den das Zwischenzertifikat unter „Zusätzliche Zertifikate“ heruntergeladen werden kann.

    – Guillaume Renoult

    23. November 2015 um 6:14 Uhr

  • Dies funktionierte für mein OpenMediaVault NAS und mein Telefon mit Marshmallow. Das Zertifikat auf dem Server bearbeitet, die Zwischenzertifikate angehängt, gespeichert und die Weboberfläche neu gestartet, und Chrome auf meinem Telefon wechselte von “Aussteller nicht vertrauenswürdig” zu “Fett und zufrieden mit dem Zertifikat”. Vielen Dank!

    –Doktor J

    8. April 2016 um 4:21 Uhr

Benutzer-Avatar
Dallas

Sie müssen ein crt-Bundle erstellen, dann ist alles in Ordnung. Sie erhalten drei crt-Dateien. Verwenden Sie sie alle! Wenn Sie nur die domain.crt verwendet haben, wird auf Android eine Warnung angezeigt, auf dem PC jedoch nicht.

Ich bin auf nginx. Ich habe domain_name.crt und dann positivesslca2.crt geöffnet, alle ausgewählt und an das Ende von domain_name.crt kopiert. Öffnen Sie dann AddTrustExternalCARoot.crt und kopieren Sie erneut an das Ende von domain_name.crt. Installieren Sie dann die domain_name.crt

funktioniert gut.

  • Das sieht aus wie die Lösung, nach der ich suche, aber es funktioniert immer noch nicht für mich. Ich bin auch auf Nginx mit einem Godaddy-Zertifikat. Godaddy hat 3 Zertifikate: domain.crt, intermediate.crt und bundle.crt. Weißt du, welche die richtige Reihenfolge deiner Antwort ist? dh Domain > Intermediate > Bundle oder Domain > Bundle > Intermediate? aus irgendeinem Grund funktioniert bei mir beides nicht.

    – isapir

    6. Januar 2014 um 8:13 Uhr

  • Anscheinend ist bundle.crt das [intermediate.crt + root.crt] verkettet, so dass die richtige Reihenfolge zu sein scheint. Aber ich bekomme es immer noch nicht zum Laufen. Irgendwelche Ideen? Vielen Dank.

    – isapir

    6. Januar 2014 um 9:18 Uhr

  • Sie benötigen kein Root, das ist bereits im Betriebssystem enthalten. Sie brauchen nur die Zwischenkette. Die Bestellung sollte Ihnen gehören + Zwischenhändler.

    – dalore

    20. August 2014 um 10:49 Uhr

Fügen Sie dies hier hinzu, da es jemandem helfen könnte. Ich hatte Probleme mit Android, das das Popup und den Fehler „Ungültiges Zertifikat“ anzeigte.

Wir haben ein Comodo Extended Validation-Zertifikat und wir haben die ZIP-Datei erhalten, die 4 Dateien enthielt:

  • AddTrustExternalCARoot.crt
  • COMODORSAAddTrustCA.crt
  • COMODORSAExtendedValidationSecureServerCA.crt
  • www_mydomain_com.crt

Ich habe sie alle in einer Zeile wie folgt verkettet:

cat www_mydomain_com.crt COMODORSAExtendedValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt >www.mydomain.com.ev-ssl-bundle.crt

Dann habe ich diese Bundle-Datei als meine verwendet ssl_certificate_key in nginx. Das ist es, funktioniert jetzt.

Inspiriert von diesem Kern: https://gist.github.com/ipedrazas/6d6c31144636d586dcc3

  • Ich habe alle anderen vorgeschlagenen Schritte ausprobiert. Das hat bei mir funktioniert. Vielen Dank!

    – Ericbae

    12. August 2015 um 0:01 Uhr

  • Gute Arbeit, habe wie verrückt gegoogelt und das hat es behoben.

    – Olafur Tryggvason

    17. September 2015 um 17:13 Uhr

  • Danke, und wenn jemand anderes Namecheap verwendet, stellen Sie sicher, dass es in diesem Format vorliegt: cat *yourdomainname*.crt *yourdomainname*.ca-bundle > cert_chain.crt

    – Harry

    7. Oktober 2019 um 11:36 Uhr


Ich hatte das gleiche Problem und mein Problem war, dass das Gerät nicht das richtige Datum und die richtige Uhrzeit hatte. Sobald ich festgestellt habe, dass dem Zertifikat vertraut wird.

Mit Comodo PositiveSSL haben wir 4 Dateien erhalten.

  • AddTrustExternalCARoot.crt
  • COMODORSAAddTrustCA.crt
  • COMODORSADomainValidationSecureServerCA.crt
  • unsere_domain.crt

Wenn wir den Anweisungen auf der Comodo-Site folgten, erhielten wir eine Fehlermeldung, dass unserem Zertifikat eine Zwischenzertifikatsdatei fehlte.

Grundsätzlich ist die Syntax

cat our_domain.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt  AddTrustExternalCARoot.crt > domain-ssl_bundle.crt

Benutzer-Avatar
somecallitblues

Ich habe mich kürzlich mit Commodo-Zertifikat, das ich auf ssls.com gekauft habe, auf dieses Problem eingelassen und hatte 3 Dateien:

domain-name.ca-bundle domain-name.crt und Domänenname.p7b

Ich musste es auf Nginx einrichten und dies ist der Befehl, den ich ausgeführt habe:

cat domain-name.ca-bundle domain-name.crt > commodo-ssl-bundle.crt

Ich habe dann commodo-ssl-bundle.crt in der Nginx-Konfigurationsdatei verwendet und funktioniert wie ein Zauber.

Benutzer-Avatar
Adrian Onu

Ich hatte den gleichen Fehler, weil ich kein Let’s Encrypt-Zertifikat für die ausgestellt hatte www.meine-domain.com, nur für meine-domain.com

Ausgabe auch für die www. und Konfigurieren des vhost zum Laden von Zertifikaten www.my-domain.com vor der Umleitung zu https://meine-domain.com hat es geschafft.

1282880cookie-checkDem Zertifikat wird vom PC vertraut, aber nicht von Android

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy