Связь Android с сервером с использованием SSL с Bouncy Castle
Я понимаю, что это не так сложно, но, к сожалению, я застрял здесь и борюсь со мной со вчерашнего дня, я следил за этимВзаимная аутентификация в Android учебник, чтобы поместить хранилище ключей в ресурсы и пытаться подключиться к моему серверу через SSL, но получаю следующее исключение
java.lang.RuntimeException: org.spongycastle.jcajce.provider.asymmetric.x509.CertificateFactory $ ExCertificateException
Я разместил свойsslapptruststore.pfx
файл подres/raw/sslapptruststore.pfx
и используя этот кусок кода
try {
KeyStore clientCert = KeyStore.getInstance("PKCS12");
clientCert.load(getResources().openRawResource(R.raw.sslapptruststore), "123456".toCharArray());// this line causes exception
HttpClient httpClient = null;
HttpParams httpParams = new BasicHttpParams();
SSLSocketFactory sslSocketFactory = new SSLSocketFactory(clientCert, null, null);
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("https", sslSocketFactory, 8443));
httpClient = new DefaultHttpClient(new ThreadSafeClientConnManager(httpParams, registry), httpParams);
HttpPost httpPost = new HttpPost(
"https://192.168.1.113:8443/CertProvider");
httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
nameValuePair.add(new BasicNameValuePair("csr", csr.toString()));
// Url Encoding the POST parameters
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
// Making HTTP Request
// HttpResponse response = null;
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String response = "";
response = httpClient.execute(httpPost, responseHandler);
} catch (Exception e) {
Log.e("", e.getMessage());
}
Я также искал, но другие используют.bks
.
Любая помощь приветствуется.