Solución de excepción de cancelación de protocolo de enlace SSL de solicitud HTTPS de Android 4.x
Prueba de API móvil 19 HUAWEI CHM-UL00, URL de solicitud de prueba: /reference/javax/net/ssl/SSLSocket Lo anterior enumera diferentes versiones de Android SSLSocket soporte para versiones de protocolo (SSL, TLS).
Socket de cliente:
Socket de servidor:
Solución:
Situación incontrolable en el lado del servidor Bajo esta circunstancia, solo puede ser Se considera que lo maneja el cliente, por lo que este artículo describirá cómo habilitar TLSv1.2 (básicamente) en versiones anteriores de clientes de Android. Este artículo explica cómo habilitar TLSv1.2 en versiones anteriores de clientes Android (básicamente, esto es compatible con el lado del servidor, por lo que se puede manejar en consecuencia).
Hay muchos artículos relacionados en Internet y el código fuente de la solución está aquí/square/okhttp/issues/2372.
En lo que respecta a mi práctica personal, el método específico es el siguiente:
Defina SSLSocketFactoryCompat y habilite TLSv1.2 al crear sockets para dispositivos 4.x
Si el cliente proporciona su propio SSLSocketFactory (por ejemplo, si el cliente carga su propio certificado), use SSLSocketFactoryCompat para encapsular su propio SSLSocketFactory y luego configúrelo si el cliente no proporciona su propio SSLSocketFactory, use el constructor sin parámetros de SSLSocketFactoryCompat;
Las clases anteriores se pueden usar con OkHttp, pero también se pueden usar con otros HTTPS donde se debe configurar SSLSocketFactory.
Uso de OkHttp
Proporcionar certificados adicionales:
Prueba simple HttpsURLConnection