android根CA和服务器/用户证书
我需要自己的CA来验证SSL连接中自己的证书。 我正在尝试,但不起作用:android根CA和服务器/用户证书,android,pki,Android,Pki,我需要自己的CA来验证SSL连接中自己的证书。 我正在尝试,但不起作用: try { AssetManager assetManager = getApplicationContext().getAssets(); InputStream inStrm = assetManager.open("cacert-devel.der"); Intent intent = KeyCh
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上得到支持,所以这应该不是问题。