Es fühlt sich an wie ich die ganze Bahn schon gesucht, aber alles, was ich gefunden sind Hinweise, wie ein ungültiges oder selbstsignierten zu akzeptiert Zertifikat automatisch. (Mit benutzerdefinierten HttpClient
und SSLSocketFactory
- Ich habe schon das funktioniert.)Browser-ähnliches Verhalten auf ungültige/selbstsignierte Zertifikaten
Aber was ich für meine App will ist, dass der Benutzer einen browserähnlichen Dialog fragt etwas wie "Wollen Sie diesem Server wirklich vertrauen? Hier, schau dir sein Zertifikat an. " (Nur wenn das Zertifikat den Standardprüfungen nicht entspricht.)
Dann sollte das Zertifikat in den Zertifikatsspeicher der App gestellt werden, damit es beim nächsten Mal automatisch akzeptiert wird.
Also, was ich wissen müssen, ist:
- Wie das Zertifikat (Kette) für einen bestimmten Host/Port-Kombination zum Download (in der Lage sein es dem Benutzer zu zeigen)?
- Wie wird das Zertifikat gespeichert, damit ich es später in eine
KeyStore
laden kann?
Dies ist mein geplanter Arbeitsablauf in der App:
- eine Anfrage an den Server sendet mit meinem benutzerdefinierten
HttpClient
. Vielleicht ist das Zertifikat dem System vertraut oder schon in meinem Geschäft (wenn ja, gehe zu 4). - Wenn die Anforderung aufgrund von SSL-Problemen fehlgeschlagen ist, zeigen Sie dem Benutzer das Zertifikat an und fragen Sie, ob dieser Verbindung vertraut werden soll.
- Wenn der Benutzer Vertrauen gewählt hat, speichern Sie das Zertifikat in meinem Geschäft und gehen Sie zu 1.
- Hurra, Verbindung ist betriebsbereit.
Also weiß jemand, wie man das macht?
Wow, Sie haben wirklich recht mit der Tatsache, dass alles, was Sie bei Google finden können, wie CA Checks deaktivieren .. –