上周后台前置更换了通讯协议为TLV1.2 后,导致客户端android 4.0-4.4系统的手机无法正常登录app, 但是android 5.0以上可以正常使用。
真机测试后发现,android studio报一下的错:
W/ System err:Cause by : javax.net.ssl.SSLProtocolException: SSL handshake aborted:ssl=0x7675477: Failure in SSL library,usually a protocol error
W/ System err:ERROR:14077402e:SSL routines: SSL23_GET_SERVER_HELLO: tlsv1 alert protocol version(external/openssl/ssl/s23_clnt.c:744 ox7423cd74:0x00000000)
网上好多都是教自定义SSLSocketFactory 去创建SSL链接,是使用
javax.net.ssl.SSLSocketFactory,而这里是使用org.apache.http.conn.ssl.SSLSocketFactory,通讯组件是用httpClient.
解决办法:
*******************************************************************************************************
import
java.io.IOException;
import
java.net.Socket;
import
java.net.UnknownHostException;
import
java.security.KeyManagementException;
import
java.security.KeyStore;
import
java.security.KeyStoreException;
import
java.security.NoSuchAlgorithmException;
import
java.security.UnrecoverableKeyException;
import
javax.net.ssl.SSLContext;
import
javax.net.ssl.SSLSocket;
import
javax.net.ssl.TrustManager;
import
javax.net.ssl.X509TrustManager;
<