Android 앱에서 LDAP 서버에 연결하려고하고 UnboundID SDK를 사용하고 있습니다. 최근에 비보안 LDAP에서 보안 LDAP로 변경되었으므로 그에 따라 앱을 변경해야합니다. 유효성을 검사 할 SSL 인증서 파일이 제공되었습니다. 나는 이미 파일을 사용하여 here과 같이 키 저장소를 만들었습니다. 나는이 키 스토어 파일을 내 앱의 assets 폴더에 가지고 있는데, 그걸 가져오고있다. 아래 코드는 현재 작동하지 않으며 예외를 throw합니다.SSL 인증서 파일과 함께 UnboundID SDK를 사용하여 Android 앱의 LDAP 서버에 연결
LDAPException (resultCode = 01 (연결 오류), errorMessage = (''place.myserver.com:636 : javax 서버에 연결하는 동안 오류가 발생했습니다. net.ssl.SSLHandShakeException : java.security.cert.CertPathValidatorException은 : 인증 경로에 대한 신뢰 앵커는, 그러나 코드 세그먼트를
// code from above link
AssetManager assetManager = getApplicationContext().getAssets();
InputStream keyStoreInputStream = assetManager.open("yourapp.store");
KeyStore trustStore = KeyStore.getInstance("BKS");
trustStore.load(keyStoreInputStream, "myPassword".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
tmf.init(trustStore);
// my code
SSLUtil sslUtil = new SSLUtil(tmf.getTrustManagers());
LDAPConnection connection = new LDAPConnection(sslUtil.createSSLSocketFactory());
connection.connect("place.myserver.com", 636);
를 찾을 수 없습니다
SSLUtil sslUtil = new SSLUtil(new TrustAllTrustManager());
LDAPConnection connection = new LDAPConnection(sslUtil.createSSLSocketFactory());
connection.connect("place.myserver.com", 636);
않는 나는에 의해 통보되었지만 작업 (이것이 안전하지 않은 상향식) 정확히 내가 여기서 잘못하고있는 것이 무엇인지 확신 할 수 없으므로 도움이 될 것입니다. 또한, 내가 이것을 수행하려고 시도하는 것보다 더 좋은 방법이 있다면, 알려 주시기 바랍니다 :) 나머지 코드는 이미 작성되었으므로 UnboundID 라이브러리를 사용하고 싶습니다. 그뿐 아니라 TrustAllTrustManager를 사용하면 모든 것이 작동합니다.