Android 设置客户端支持的TLS支持的版本号
MySSLSocketFactory mySSLSocketFactory=null;try {KeyStore trustStore = KeyStore.getInstance("BKS");mySSLSocketFactory = new MySSLSocketFactory(trustStore,服务器HOST);} catch (KeyStoreException e) {e.printStackTrace();} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (UnrecoverableKeyException e) {e.printStackTrace();} catch (KeyManagementException e) {e.printStackTrace();}userName=StringUtils.escapeJIDName(userName);SmackConfiguration.setDefaultPacketReplyTimeout(30*1000);DomainBareJid serviceName= null;try {serviceName = JidCreate.domainBareFrom(HttpUrl.getInstante().getEasyLifeHost());} catch (XmppStringprepException e) {e.printStackTrace();}mXmpptcpConnectionConfiguration=XMPPTCPConnectionConfiguration.builder().setServiceName(serviceName).setHost(HttpUrl.getInstante().getEasyLifeHost()).setPort(5222) // .setResource("Android").setUsernameAndPassword(userName, password).setSendPresence(isPresence).setDebuggerEnabled(true).setSecurityMode(SecurityMode.required).setCompressionEnabled(false).setConnectTimeout(30*1000).setCustomSSLContext(mySSLSocketFactory.getSSLContext()).setHostnameVerifier(new HostnameVerifier() {@Overridepublic boolean verify(String hostname, SSLSession session) {return true;}}).setEnabledSSLProtocols(new String[]{"TLSv1","TLSv1.1","TLSv1.2"}).build();
import org.apache.http.conn.ssl.SSLSocketFactory;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 java.security.cert.CertificateException; import java.security.cert.X509Certificate;import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocket; import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManagerFactory; import javax.net.ssl.X509TrustManager;public class MySSLSocketFactory extends SSLSocketFactory {private SSLContext sslContext = SSLContext.getInstance("TLS");private String baseUrl;public MySSLSocketFactory(KeyStore truststore,String url)throws NoSuchAlgorithmException, KeyManagementException,KeyStoreException, UnrecoverableKeyException {super(truststore);baseUrl=url;TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("X509");trustManagerFactory.init(truststore);X509TrustManager trustManager=(X509TrustManager) trustManagerFactory.getTrustManagers()[0];MyX509TrustManager myTrustManager = new MyX509TrustManager(trustManager);sslContext.init(null, new TrustManager[]{myTrustManager}, null); }public Socket createSocket(Socket socket, String host, int port,boolean autoClose) throws IOException, UnknownHostException {SSLSocket sslSocket= (SSLSocket) sslContext.getSocketFactory().createSocket(socket, host, port,autoClose);sslSocket.setEnabledProtocols(new String[]{"TLSv1","TLSv1.1","TLSv1.2"});return sslSocket;}public Socket createSocket() throws IOException {SSLSocket sslSocket=(SSLSocket) sslContext.getSocketFactory().createSocket();sslSocket.setEnabledProtocols(new String[]{"TLSv1","TLSv1.1","TLSv1.2"});return sslSocket;}public SSLContext getSSLContext(){return sslContext;}public class MyX509TrustManager implements X509TrustManager {private X509TrustManager tm;public MyX509TrustManager(X509TrustManager tm) {this.tm = tm;}public X509Certificate[] getAcceptedIssuers() {throw new UnsupportedOperationException();}public void checkClientTrusted(X509Certificate[] chain, String authType)throws CertificateException {throw new UnsupportedOperationException();}public void checkServerTrusted(X509Certificate[] chain, String authType)throws CertificateException {}}
Android 设置客户端支持的TLS支持的版本号相关推荐
- Android微信小尾巴,微信骚操作,微信聊天小尾巴这样自定义设置,安卓苹果都支持...
原标题:微信骚操作,微信聊天小尾巴这样自定义设置,安卓苹果都支持 前段时间,在大家"拍一拍"玩得不亦乐乎的时候,有小伙伴问我微信聊天的小尾巴怎么实现? 当时,给我发来一张效果图,当 ...
- android设置雷达网各层颜色,GitHub - androidTH/RadarChart: 支持自由定制外观、手势旋转的雷达图表 android radarchart...
RadarView 一个可以自由定制.旋转交互的Android雷达图Lib 一些特性 支持手势旋转(可关闭) 支持动画的方式添加展现数据 支持对各层雷达网添加背景 支持自定义雷达网层数 支持使用圆形作 ...
- netty系列之:让TLS支持http2
文章目录 简介 TLS的扩展协议NPN和ALPN SslProvider ApplicationProtocolConfig 构建SslContext ProtocolNegotiationHandl ...
- 客户端和服务器不支持一般 ssl 协议版本或加密套件。_恶意软件加密通信概要分析...
作者:Jo@北京观成科技 恶意加密流量是当前流量安全检测的痛点和难点.在未解密的情况下如何检测恶意加密流量,机器学习可提供颇为有效的解决方案.传统机器学习依赖于训练数据集和特征工程,而搜集的各类恶意加 ...
- Android8.0 学习 (17)Android国际化(多语言)实现,支持8.0
Android国际化(多语言)实现,支持8.0 前言 最近因为项目中使用了国际化,所以正好研究了下实现方法: 首先说下项目需求: 可以随着系统切换语言而切换语言,不支持的语言显示默认 用户可以选择语言 ...
- android apk对遥控器支持,Android中关于APK对遥控器支持的修改
最近,对Andoid中APK做了一些修改,让其支持遥控器的支持,这把人弄得焦头烂额,好不郁闷,这里特别记录下思路,留给有需要的同志. 其实Android本身是做了对遥控器的上下左右按键的焦点移动控制, ...
- 谷歌浏览器提示客户端和服务器不支持一般 SSL 协议版本或加密套件(亲测有效)
目录 一.定位问题 二.升级TLS1.2 1.原理 之前架构 调整架构 2.配置nginx 3.配置tomcat 三.访问nginx即可 最近访问一部分网站时,出现如下图所示 " 此网站无法 ...
- android7.0 谷歌拼音,谷歌浏览器在Android 7.0及以上版本支持使用指纹验证进行无密码登录...
原标题:谷歌浏览器在Android 7.0及以上版本支持使用指纹验证进行无密码登录 来源:蓝点网 此前谷歌已经宣布与 FIDO 联盟达成合作关系并在安卓系统上调用指纹或面部识别等来登录某些支持的网站. ...
- android app支持多语言,支持多语言支持的Android应用程序
本文中,我们将学习如何构建支持(国际化和本地化)多种语言的Android APP .语言在应用程序的整体界面中起着至关重要的作用,如果您可以添加更多语言,以便您可以支持更广泛的受众,那么语言就非常棒. ...
- appcompat v21: 让 Android 5.0 前的设备支持 Material Design
1. 十大Material Design开源项目 2. appcompat v21: 让 Android 5.0 前的设备支持 Material Design 主题 AppCompat已经支持最新的调 ...
最新文章
- 管理员信息管理之更新管理员数据
- ABAP 使用DYNP_VALUES_READ来获取屏幕字段值
- LightGBM如何保存模型?
- Xshell显示中文,但是不能输入中文
- 坑爹的日志无法按天切割问题
- java sleep方法_一文搞懂 Java 线程中断!
- 1088. [SCOI2005]扫雷Mine【网格DP】
- 使用 Django + Wusgi + Nginx 部署 Django
- leveldb资料整理
- mysql中更新的命令是_MySQL 语言中,更新表数据的命令是( )。_学小易找答案
- java 知乎面试题_2019最新Java面试题,常见面试题及答案汇总(208道)
- $(...).modal is not a function
- Linux学习笔记5 - Shell编程(类似于Windows下的批处理)
- 数字图像处理与分析---指纹图像增强(Python)
- J2Cache+Spring注入配置参数,无需读取固定路径下的j2cache.properties配置文件
- python pytz下载_python:pytz包安装问题:ImportError:没有名为pytz的模块
- java实时获取android网速_Android实现网速实时监测工具类
- 数据库候选关键词怎么求_数据库中,什么是超关键字,候选关键字,主关键字?麻烦举例说明...
- 枚举类与注解(复习)
- Qt 之文件选择对话框 QFileDialog