我已按照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();
}
答案 0 :(得分:1)
Android设备本身以及Google或系统制作的任何应用都可以看到设置安装的证书。但是您的应用无法看到证书,这就是您需要通过自己的应用中的代码导入或安装它的原因。