Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android根CA和服务器/用户证书_Android_Pki - Fatal编程技术网

android根CA和服务器/用户证书

android根CA和服务器/用户证书,android,pki,Android,Pki,我需要自己的CA来验证SSL连接中自己的证书。 我正在尝试,但不起作用: try { AssetManager assetManager = getApplicationContext().getAssets(); InputStream inStrm = assetManager.open("cacert-devel.der"); Intent intent = KeyCh

我需要自己的CA来验证SSL连接中自己的证书。 我正在尝试,但不起作用:

            try {
                AssetManager assetManager = getApplicationContext().getAssets();
                InputStream inStrm = assetManager.open("cacert-devel.der");

                Intent intent = KeyChain.createInstallIntent();
                CertificateFactory cf = CertificateFactory.getInstance("X.509");
                X509Certificate x509 = (X509Certificate) cf.generateCertificate(inStrm);
                inStrm.close();
                intent.putExtra(KeyChain.EXTRA_CERTIFICATE, x509.getEncoded());
                intent.putExtra(KeyChain.EXTRA_NAME,"PCA");
                startActivity(intent);
            } catch (CertificateException e1) {
                // TODO Auto-generated catch block
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
如何测试已安装CA? 将SSL发送到此CA的服务器后,返回:

            DefaultHttpClient httpclient = new DefaultHttpClient();
            HttpGet httpget = new HttpGet();
            HttpResponse response = null;
            httpget.setURI(new URI("https://url...");
            response = httpclient.execute(httpget);
            StatusLine status = response.getStatusLine();
            int statuscode = status.getStatusCode();
            if (statuscode != 200){
                Log.e("GET", "Status"   + statuscode);
            }else{
                Log.e("GET","Status:"  + statuscode);
            }
IO异常javax.net.ssl.SSLPeerUnverifiedException:无对等 证书


有什么建议吗?

是否安装了证书?也就是说,你是否得到安装对话框,它是否显示在设置->安全->可信凭证->用户选项卡中?是的,已安装,并在Fedora上的chrome中进行了测试。似乎验证器没有包含此证书,或者,我以错误的方式使用HttpClient。这是什么设备/版本?该站点是否与本机Android浏览器配合使用?HttpClient不需要特殊配置,因此可能是服务器配置错误/协议不受支持。Android浏览器返回不受信任的证书,但web可以继续工作。服务器使用SNI。那么CA证书在Android的信任存储中是否正确显示?SNI应该从ICS上得到支持,所以这应该不是问题。