Возникла проблема с SSL-соединением на последних версиях Android (API>23). На предыдущих версиях проблема не наблюдается. Проблема возникает на этапе рукопожатия:
W/System.err: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
W/System.err: at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:361)
Замечено, что проблема возникает при использовании 2048 битных ключей, при 1048 битных ключей такой проблемы нет.
Код добавления сертификата CA в список доверенных.
TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
KeyStore keyStoreCA = KeyStore.getInstance("BKS");
keyStoreCA.load(null, null);
Certificate certServer = ks.getCertificate("Server");
if (certServer != null)
Log.d("###", "certServer=" + certServer.toString());
keyStoreCA.setCertificateEntry("Server", certServer);
tmf.init(keyStoreCA);
Подскажите, пожалуйста, как решить данную проблему?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей