Wie kann ein selbstsigniertes Zertifikat für SSL-Sockets auf Android aktiviert werden?

8

Ich habe ein selbstsigniertes Serverzertifikat (cert.pem) und muss es für SSL-Sockets in einer Android-Anwendung aktivieren. Idealerweise möchte ich den Code als .jar-Datei packen und benötige keine externe Zertifikatsdatei (d. H. Sie in den Code aufnehmen).

Mit diesem Code kann ich alle Zertifikate akzeptieren, was ich nicht will:

%Vor%

Muss ich das Zertifikat einem benutzerdefinierten KeyManager oder dem benutzerdefinierten TrustManager hinzufügen?

Ein Problem, das mir begegnet ist, ist, dass Android keine JKS-Keystores akzeptiert (KeyStore.getDefaultType () gibt "BKS" zurück): " java.security.KeyStoreException: KeyStore JKS-Implementierung nicht gefunden "

Irgendwelche Ideen, wie man vorgeht, würden sehr geschätzt werden!

    
Chris 16.07.2010, 13:01
quelle

1 Antwort

13

Ja, Sie müssen das Zertifikat einem benutzerdefinierten KeyStore hinzufügen. Es ist im Grunde ein 4-stufiger Prozess:

  1. Besorgen Sie sich Ihr Serverzertifikat.
  2. Importieren Sie das Serverzertifikat als Rohressource in Ihre Anwendung in einen Keystore. Der KeyStore-Typ muss BKS sein.
  3. Erstellen Sie in Ihrem Java / Android-Programm Ihren eigenen TrustManager, um das Zertifikat in einen SSLContext zu laden.
  4. Verwenden Sie diesen SSLContext für Ihre SSL-Verbindungen.

Siehe diesen Link für detaillierte Anweisungen und Beispielcode:
Ссылка

Viel Glück.
Nehc

    
user444552 10.09.2010, 17:00
quelle

Tags und Links