节点js在Android应用程序中打开ssl(不安全)https服务问题

问题描述 投票:0回答:1

我集成了节点js打开SSL(不安全)https服务在我的Android应用程序中。但它不起作用。如果我第一次集成在Web应用程序中它显示错误消息“您的连接不安全”然后提前设置我允许然后它正在工作,但在Android应用程序中它抛出相同的异常。如何解决这个问题。

android node.js https
1个回答
0
投票
  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;
    }
© www.soinside.com 2019 - 2024. All rights reserved.