HttpsUrlConnection: Ancla de confianza para ruta de certificación no encontrada en 2.3
ahí. Necesito establecer la conexión https con https://free.temafon.ru pero tengo CertPathValidatorException en Android 2.3 y abajo. Qué he hecho.
- Coge todos los certs desde https://free.temafon.ru con Firefox.
- Importar certificados en keystore en secuencia desde el certificado de temefon hasta el certificado raíz.
-
Init ssl context:
- Advertencia de Google Play: controlador WebViewClient.onReceivedSslError
- Compruebe el método onReceivedSslError () de un WebViewClient si se firma un certificado desde una CA propia auto-firmada
- Intermitente PeerUnverifiedException: No hay certificado de compañero con el cliente de Android
- HttpsURLconnection para publicar y obtener en Android
- ¿Cómo puedo establecer SignalR en Android Studio para ignorar los problemas de SSL para el desarrollo
Final KeyStore keystore = KeyStore.getInstance ("BKS");
keystore.load(getResources().openRawResource(R.raw.temafon), "W0d3Uoa5PkED".toCharArray()); final TrustManager trustManager = new TemafonTrustManager(keystore); final SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, new TrustManager[] { trustManager }, null); HttpsURLConnection.setDefaultSSLSocketFactory(sslContext .getSocketFactory());
Aquí, yo uso TrustManager personalizado , porque el servidor envía certs en orden incorrecto.
Este código funciona bien en Android 4.0, pero falló en 2.3 con java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
¿Qué estoy haciendo whrong?
He creado un proyecto de prueba, que se puede encontrar aquí .
- ¿Cómo resolver el problema "ingrese la contraseña para el almacenamiento de credenciales"?
- Problemas con el certificado WSS y SSL en Android
- Acceso web automático de Webview de Android al sitio Web de https estableciendo cookies de token
- Verificar manualmente el certificado SSL en WebView
- Certificado de pinning no funciona con OkHttp en Android
- Alerta de seguridad de Android WebView SSL
- CertificateException - OpenSSLX509CertificateFactory $ ParsingException
- Cuándo instalar keystore & cuándo instalar sólo el certificado envuelto en keystore
Cuando dice que tomó todos los certificados con FireFox, ¿también incluyó la CA raíz?
Lo más probable es que Android 2.3 no tenga instalada la CA raíz. Por este enlace ,
En este caso, SSLHandshakeException se produce porque tiene una CA que no es de confianza por el sistema. Podría ser porque tiene un certificado de una nueva entidad emisora de la que aún no confía Android o su aplicación se ejecuta en una versión anterior sin la entidad emisora de certificados.