7

Я хочу создать приложение для Android, которое будет использовать аутентификацию сертификата SSL-клиента.Создание клиентского сертификата на устройстве Android

Я нашел примеры кодов, которые показывают мне, как две проверки подлинности сертификата SSL-клиента в приложении для Android. Это ясно для меня.

Моя проблема заключается в том, что я хочу создать сертификат SSL-клиента на устройстве. Проще говоря, я хочу, чтобы моя программа выполняла следующие действия:

Когда программа установлена ​​на устройстве, на устройстве должно быть создано клиентское удостоверение (при первом запуске) и печать пальца с открытым ключом будет отправлено на мой сервер. (Сертификат должен быть сгенерирован при первом использовании).

Как я могу сгенерировать клиентский сертификат и устройство Android из своего приложения?

ответ

7

Вы можете запустить следующий код на Android, чтобы создать пару ключей и получить отпечаток пальца. Он использует отличный 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)); 


} 

Просто поместите JAR в свою папку с папками, и вы хорошо пойдете.

Если вы используете Maven, вы можете ссылаться на зависимость JSch так:

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

Спасибо за вашу помощь :) –

Смежные вопросы