Как установить сертификат с помощью Arc Welder

Пытаюсь запустить свое приложение с помощью Arc. Мое приложение требует, чтобы на устройстве был установлен определенный сертификат. Обычно я делаю это через настройки Android. Как установить сертификат в Arc?

Спасибо


person Nullqwerty    schedule 29.02.2016    source источник


Ответы (1)


Это казалось невозможным, поэтому в конце концов я добавил сертификат как необработанный ресурс, а затем, используя следующую статью, я загрузил сертификат с помощью кода: http://littlesvr.ca/grumble/2014/07/21/android-programming-connect-to-an-https-server-with-self-signed-certificate/

Все работало хорошо, и теперь приложение можно запускать через ARC с использованием сертификата.

На случай, если статья выйдет из строя в будущем, вот соответствующий код с небольшими изменениями для поддержки:

protected SSLSocketFactory getCertificateSocketFactory() throws Exception {

    InputStream certStrm = context.getResources().openRawResource(R.raw.cert_file)

    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    Certificate ca = cf.generateCertificate(certStrm);

    String keyStoreType = KeyStore.getDefaultType();
    KeyStore keyStore = KeyStore.getInstance(keyStoreType);
    keyStore.load(null, null);
    keyStore.setCertificateEntry("ca", ca);

    String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
    TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
    tmf.init(keyStore);

    SSLContext sslContext = SSLContext.getInstance("TLS");
    sslContext.init(null, tmf.getTrustManagers(), null);

    return sslContext.getSocketFactory();

}
person Nullqwerty    schedule 04.03.2016