Android从设备设置安装自签名证书SSL以编程方式安装

时间:2017-05-04 14:36:19

标签: java android ssl soap

我已按照this guide生成自签名SSL证书, 我成功地制作了.cer和.bks。但是:

使用设备设置安装.cer文件与使用CODE安装.bks文件相同吗?

我的手机浏览器接受我的网站没有问题。但是,当我运行我的应用程序来查询来自同一website/myservice.ASMX的服务的soap请求时,它会提供“主机名未经验证的”#39;如果使用trustmaster"接受所有主机和证书"我收到错误405

代码访问网站:

    SoapObject Request = new SoapObject(NAMESPACE, method);
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet = true;
    PropertyInfo password = new PropertyInfo();
    password.setName(ID);
    password.setValue(pass);
    password.setType(String.class);
    Request.addProperty(password);
    envelope.setOutputSoapObject(Request);
    HttpTransportSE androidHttpsTransport = new HttpTransportSE("https://"+MAIN_REQUEST_URL+":"+sPORT+SERVICELOCATION);
    makeFileOffline(androidHttpsTransport.getHost() +"\n"+ SERVICELOCATION,"AgriHTTP" );
     try {

        //FakeX509TrustManager.allowAllSSL();<< When enabled it gives 405 

        androidHttpsTransport.call(NAMESPACE+method, envelope);

        SoapPrimitive resultsString = (SoapPrimitive) envelope.getResponse();

        String webServiceResult = resultsString.toString();


    } catch (IOException e) {

        Log.d(e.toString(),"LogCat" );
        e.printStackTrace();
    } catch (XmlPullParserException e) {

        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:1)

Android设备本身以及Google或系统制作的任何应用都可以看到设置安装的证书。但是您的应用无法看到证书,这就是您需要通过自己的应用中的代码导入或安装它的原因。

相关问题