Zertifikat von Server HTTPS empfangen und bestätigen - android

8

Ich rufe den Web Service von meinem Android Client über https an. Ich habe das Zertifikat von der Server-Seite zu validieren. Wie mache ich das ? Derzeit ist dies mein Code, mit dem ich einen Webservice anrufe.

%Vor%

Wie validiere ich ein selbstsigniertes Zertifikat, das während der Ausführung von Post vom Server empfangen wurde? Ich muss Tests über öffentliche / private Schlüssel durchführen. Der Client wird eine CA-Datei haben. Ich brauche nur den Client, um das Server-Zertifikat mit der CA zu überprüfen, der Dienst ist öffentlich. Dies hat mit öffentlichen / privaten Schlüssel zu tun. Wie kann ich das Zertifikat vom Server erhalten, bevor ich den Post anrufe?

Es gibt verschiedene Optionen und Code-Snippets, die auf stackoverflow verfügbar sind. Ein paar Links, die ich mit mehreren Antworten gefunden habe, sind: Akzeptieren eines Zertifikats für HTTPs auf Android HTTPS GET (SSL) mit Android und selbst signiertem Server Zertifikat

Aber ich kann nicht erkennen, was gut / anwendbar für mich ist! Ich möchte nicht alle deaktivieren oder akzeptieren. Überprüfen Sie die öffentlichen / privaten Schlüssel /

Jede Hilfe wird sehr geschätzt.

    
Tvd 18.04.2011, 08:46
quelle

1 Antwort

4

Bob Lee hat einen schönen Blogeintrag zur Verwendung von SSL-Zertifikaten mit Android geschrieben. Ich denke, dass es auf Ihren Fall anwendbar ist: Ссылка

Sie müssen lediglich ein KeyStore erstellen, das Ihr selbstsigniertes Zertifikat enthält, und die benutzerdefinierte HttpClient Implementierung verwenden, die in diesem Beitrag beschrieben wird.

UPDATE:

Die Validierung des Hostnamens kann durch Festlegen einer benutzerdefinierten X509HostnameVerifier für SSLSocketFactory . Einige Implementierungen sind bereits in android verfügbar: AllowAllHostnameVerifier , BrowserCompatHostnameVerifier , StrictHostnameVerifier

%Vor%     
Jcs 18.04.2011, 10:00
quelle