【问题标题】:Android install self signed Certificate SSL from device settings VS programmatically installAndroid 从设备设置安装自签名证书 SSL VS 以编程方式安装
【发布时间】:2017-05-04 14:36:19
【问题描述】:

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

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

我的手机浏览器毫无问题地接受我的网站时遇到问题。但是,当我运行我的应用程序以查询来自相同 website/myservice.ASMX 的服务的肥皂请求时,它会给出“主机名未验证”,如果使用 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();
    }

【问题讨论】:

标签: java android ssl soap


【解决方案1】:

通过设置安装的证书可以被安卓设备本身和谷歌或系统制作的任何应用程序看到。但是您的应用看不到证书,这就是为什么您需要在自己的应用中通过代码导入或安装它。

【讨论】:

    猜你喜欢
    • 2012-10-09
    • 2012-09-29
    • 1970-01-01
    • 2011-09-11
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    相关资源
    最近更新 更多