Узел js open ssl (не защищен) Проблема служб https в приложении для Android - PullRequest
0 голосов
/ 26 февраля 2019

Я интегрировал узел с открытым SSL (не защищенным) сервисом https В моем приложении для Android.Но это не работает.если я в первый раз интегрировал в веб-приложение, оно показывает сообщение об ошибке «Ваше соединение не защищено», тогда заранее настройку разрешаю, затем он работает, но в приложении для Android выдает то же исключение.как решить эту проблему.

1 Ответ

0 голосов
/ 26 февраля 2019
  1. Добавьте файл сертификации в папку активов.

  2. Запустите следующий код, чтобы Android доверял этой сертификации.

вызов ниже trustCert () метод, подобный этому -

httpsURLConnection.setSSLSocketFactory(trustCert().getSocketFactory());

     private SSLContext trustCert()throws CertificateException,

        IOException,KeyStoreException,

    NoSuchAlgorithmException,KeyManagementException{

    AssetManager assetManager=getAssets();

    CertificateFactory cf=CertificateFactory.getInstance("X.509");

    Certificate ca=cf.generateCertificate(assetManager.open("fileName.crt"));

    // Create a KeyStore containing our trusted CAs

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

     // Create a TrustManager that trusts the CAs in our KeyStore

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

     // Create an SSLContext that uses our TrustManager
    SSLContext context=SSLContext.getInstance("TLS");
    context.init(null,tmf.getTrustManagers(),null);
    return context;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...