1
내 Android 애플리케이션에 Couch Base Lite 복제가 있습니다. 이전 버전을 사용하여 SSL 인증서 및 동기화를 추가 할 수 있었지만 버전 1.3.1로 업데이트하면 클래스가 사용되지 않으며 인증서를 추가 할 수 없습니다. 어떤 도움?CouchbaseLiteHttpClientFactory Android에 SSL 인증서를 추가 할 수 없습니다.
내 Android 애플리케이션에 Couch Base Lite 복제가 있습니다. 이전 버전을 사용하여 SSL 인증서 및 동기화를 추가 할 수 있었지만 버전 1.3.1로 업데이트하면 클래스가 사용되지 않으며 인증서를 추가 할 수 없습니다. 어떤 도움?CouchbaseLiteHttpClientFactory Android에 SSL 인증서를 추가 할 수 없습니다.
는 솔루션을
CertificateFactory cf;
try {
cf = CertificateFactory.getInstance("X.509");
AssetManager assManager = Utils.context.getAssets();
InputStream is = null;
is = assManager.open("certificate.cer");
InputStream caInput = new BufferedInputStream(is);
Certificate ca;
try {
ca = cf.generateCertificate(caInput);
System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
} finally {
caInput.close();
}
// Create a KeyStore containing our trusted CAs
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null, null);
keyStore.setCertificateEntry("ca", ca);
// Create a TrustManager that trusts the CAs in our KeyStore
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(keyStore);
// create CouchbaseLiteHttpClientFactory
CouchbaseLiteHttpClientFactory cblHttpClientfactory = new CouchbaseLiteHttpClientFactory
(database.getPersistentCookieStore());
// Create an SSLContext that uses our TrustManager
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), null);
cblHttpClientfactory.setSSLSocketFactory(context.getSocketFactory());
manager.setDefaultHttpClientFactory(cblHttpClientfactory);
} catch (CertificateException e) {
}
발견