SSLSOcket在Android6.0中出错原因
来源:互联网 发布:淘宝订单险的作用 编辑:程序博客网 时间:2024/06/11 02:24
发生情境:
通过sslsocket在Android API23以下正常通讯,但在Android6.0时,报错;错误信息如下:
Android端报错:
core_booster, getBoosterConfig = false javax.net.ssl.SSLHandshakeException: Handshake failed at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:396) at com.android.org.conscrypt.OpenSSLSocketImpl.waitForHandshake(OpenSSLSocketImpl.java:629) at com.android.org.conscrypt.OpenSSLSocketImpl.getOutputStream(OpenSSLSocketImpl.java:615) Caused by: javax.net.ssl.SSLProtocolException: SSL handshake terminated: ssl=0x7fa0a92880: Failure in SSL library, usually a protocol error error:100c5410:SSL routines:ssl3_read_bytes:SSLV3_ALERT_HANDSHAKE_FAILURE (external/boringssl/src/ssl/s3_pkt.c:972 0x7f9e04c860:0x00000001) error:100c009f:SSL routines:ssl3_get_server_hello:HANDSHAKE_FAILURE_ON_CLIENT_HELLO (external/boringssl/src/ssl/s3_clnt.c:750 0x7f92721518:0x00000000) at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:324)
服务端报错:
javax.net.ssl.SSLHandshakeException: no cipher suites in common at sun.security.ssl.Alerts.getSSLException(Unknown Source) at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source) at sun.security.ssl.Handshaker.fatalSE(Unknown Source) at sun.security.ssl.Handshaker.fatalSE(Unknown Source) at sun.security.ssl.ServerHandshaker.chooseCipherSuite(Unknown Source) at sun.security.ssl.ServerHandshaker.clientHello(Unknown Source) at sun.security.ssl.ServerHandshaker.processMessage(Unknown Source) at sun.security.ssl.Handshaker.processLoop(Unknown Source) at sun.security.ssl.Handshaker.process_record(Unknown Source) at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at sun.security.ssl.SSLSocketImpl.readDataRecord(Unknown Source) at sun.security.ssl.AppInputStream.read(Unknown Source) at sun.security.ssl.AppInputStream.read(Unknown Source) at java.io.DataInputStream.readLine(Unknown Source) at com.bbcvision.ssl.Server$ReceiveSocket.getHttpHeader(Server.java:209) at com.bbcvision.ssl.Server$ReceiveSocket.run(Server.java:236)
原因:
SSLSocket签名算法默认为DSA,Android6.0(API 23)以后KeyStore发生更改,不再支持DSA,但仍支持ECDSA。所以,查看你的SSLSocket签名算法是否包含DSA,是的话就更换掉。若有其它原因,欢迎交流。
Android Keystore Changes
With this release, the Android Keystore provider no longer supports DSA. ECDSA is still supported. Keys which do not require encryption at rest will no longer be deleted when secure lock screen is disabled or reset (for example, by the user or a Device Administrator). Keys which require encryption at rest will be deleted during these events.
这是官方文档里的更改说明。
0 0
- SSLSOcket在Android6.0中出错原因
- OpenCV示范程序在Android6.0中运行出错(使用Android Studio)
- android6.0出错解决方法解决
- 在 eclipse项目中导入javax....包时出错原因
- 在PreTranslateMessage中调用t总是出错的原因分析
- sslsocket
- SSLSocket
- 记录:activeandroid数据库工具注解字段,在android6.0里Gson解析确出错了
- Android6.0蓝牙搜索出错问题
- Mat中imread出错原因
- Android6.0 蓝牙搜索不到设备原因
- 在Android6.0中使用AlertDialog.Builder出现的问题
- 如何在API23(Android6.0)中使用HttpClient
- Android6.0中申请权限在fragment中无回调
- 关于pdfbox在android平台中运行出错的原因分析
- mac中连接mysql出错的原因
- [RK3288][Android6.0] 调试笔记 --- 交叉编译X264库出错
- printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因
- OA系统
- 1037. Magic Coupon (25)
- 1020. 月饼 (25)
- 关于初学centos网络配置问题的解决方法
- Docker为什么刚运行就退出了?
- SSLSOcket在Android6.0中出错原因
- php怎么获取数组键名实例代码
- HDU 2545 树上战争 (并查集)
- Abstract Factory(抽象工厂模式)
- java中的String [] args
- sql语句面试题
- 【App】3类主流APP设计方法简介
- Http代理篡改网页,html污染,http代理服务器污染html,c#http代理
- android 拨打电话、 监听来电、监听呼出电话的功能实现