7

Ich möchte eine Android-Anwendung erstellen, die SSL-Client-Zertifikat-Authentifizierung verwendet.Erstellen eines Client-Zertifikats auf einem Android-Gerät

Ich habe Beispielcodes gefunden, die mir zeigen, wie zwei SSL-Client-Zertifikat-Authentifizierung in einer Android-Anwendung verwenden. Das ist mir klar.

Mein Problem ist jedoch, dass ich ein SSL-Client-Zertifikat auf dem Gerät generieren möchte. Einfach gesagt, möchte ich, dass mein Programm Folgendes macht:

Wenn das Programm auf dem Gerät installiert ist, sollte ein Clientzertifikat auf dem Gerät (bei der ersten Ausführung) und einem öffentlichen Schlüssel Fingerabdruck generiert werden wird an meinen Server gesendet. (Das Zertifikat muss bei der ersten Verwendung generiert werden).

Wie kann ich ein Client-Zertifikat auf einem Android-Gerät aus meiner Anwendung generieren?

Antwort

7

Sie können den folgenden Code unter Android ausführen, um ein Schlüsselpaar zu generieren und den Fingerabdruck abzurufen. Es verwendet die ausgezeichnete JSCH library from jCraft.

public void generatePublicPrivateKeyPair() throws Exception { 

     ByteArrayOutputStream privateKeyOutputStream = new ByteArrayOutputStream(); 
     ByteArrayOutputStream publicKeyOutputStream = new ByteArrayOutputStream(); 

     JSch jsch=new JSch(); 
     KeyPair kpair=KeyPair.genKeyPair(jsch, KeyPair.RSA); 
     //kpair.setPassphrase(passphrase); 
     kpair.writePrivateKey(privateKeyOutputStream); 
     kpair.writePublicKey(publicKeyOutputStream, "Generated by vPro Management Console"); 

     String fingerPrint = kpair.getFingerPrint(); 
     System.out.println("Finger print: "+ fingerPrint); 
     kpair.dispose(); 

     byte[] privateKey = privateKeyOutputStream.toByteArray(); 
     byte[] publicKey = publicKeyOutputStream.toByteArray(); 

     System.out.println("Private key " + new String(privateKey)); 
     System.out.println("Public key " + new String(publicKey)); 


} 

Legen Sie einfach die JAR in Ihrem Ordner libs und Sie sind gut zu gehen.

Wenn Sie Maven verwenden, können Sie die JSch Abhängigkeit wie diese Referenz:

<dependency> 
    <groupId>com.jcraft</groupId> 
    <artifactId>jsch</artifactId> 
    <version>0.1.50</version> 
</dependency> 
+0

Dank für Ihre Hilfe danken :) –

Verwandte Themen