android自验签名证书,没有以前的互联网连接,无法验证Android自签名证书
使用SSL基础架构:
我们有一个有效的客户端/服务器设置,其中Android版本4.2和4.4的手机充当客户端,必须通过其自签名SSL证书验证服务器.
问题:
只要设备在尝试连接之前至少有一次互联网访问权限,服务器证书验证就会起作用.但是,如果执行恢复出厂设置且设备直接连接到没有Internet连接的专用网络,则证书验证将失败.
重现行为:
>出厂重置手机
>重新启动而不选择连接到具有Internet访问权限的WiFi
>尝试验证自签名SSL证书 – >失败
>连接到可上网的WiFi
>重新连接到原始专用网络
>尝试验证自签名SSL证书 – >作品
从技术上讲,设备不应该需要Internet访问来验证自签名证书.在进行任何SSL服务器验证之前,是否存在某种必须加载的黑名单?我可以阻止这种行为吗?
创建SSL上下文:
//Using a client certificate
String password = "clientpass";
KeyStore keyStore = KeyStore.getInstance("PKCS12");
InputStream is = context.getResources().openRawResource(R.raw.client);
keyStore.load(is,password.tocharArray());
is.close();
KeyManagerFactory kmf = KeyManagerFactory.getInstance("X509");
kmf.init(keyStore,password.tocharArray());
KeyManager[] keyManagers = kmf.getKeyManagers();
// Using self signed certificate
CertificateFactory cf = CertificateFactory.getInstance("X.509");
is = context.getResources().openRawResource(R.raw.cacert);
InputStream caInput = new BufferedInputStream(is);
Certificate ca;
try {
ca = cf.generateCertificate(caInput);
Log.i("CA","ca=" + ((X509Certificate) ca).getSubjectDN());
} finally {
caInput.close();
}
// Create a KeyStore containing our trusted CAs
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null);
trustStore.setCertificateEntry("ca",ca);
// Create a TrustManager that trusts the CAs in our KeyStore
TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
tmf.init(trustStore);
TrustManager[] trustManagers = tmf.getTrustManagers();
// Create an SSLContext that uses our Trustmanager and Keymanager
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(keyManagers,trustManagers,null);
//create a socket to connect with the server
SSLSocketFactory socketFactory = sslContext.getSocketFactory();
SSLSocket socket = (SSLSocket) socketFactory.createSocket(serverAddr,port);
socket.setUseClientMode(true);
socket.addHandshakeCompletedListener(this);
socket.startHandshake();
在startHandshake中出现异常失败:
javax.net.ssl.SSLHandshakeException: com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: null
android自验签名证书,没有以前的互联网连接,无法验证Android自签名证书相关推荐
- 解决android上WIFI提示“未检测到任何互联网连接,因此不会自动重新连接“
问题描述: 在android5.1中出现如题提示,导致机器重启后不会链接WIFI. 分析代码: frameworks/opt/net/wifi/service/java/com/android/ser ...
- android ble sample,BleManager ble library 和周边 ble 连接 sample @codeKK Android开源站
对 Ble 的封装,入口为 BleManager. 提供 Sample,可以连接周围 Ble 设备,支持发送数据与接收数据 使用方法 AbsBleManager manager = BleManage ...
- 服务器客户端证书,客户端如何验证HTTPS服务端证书信息
通过一个例子说明客户端如何验证HTTPS服务端的证书信息. 类型浏览器如何验证WEB服务器的证书信息. 生成服务器端证书,以及CA证书 # generate ca certificate $ open ...
- 无法验证驱动程序的签名_无法验证应用?掉签名打不开应用?没越狱也能解决!...
[ID君有话说] 什么叫掉签名?苹果手机的app都是在App Store 下载的,但还有很多APP由于不符合苹果商店规则,或不喜欢被商店的规则束缚,选择通过企业签名可以让免越狱用户直接安装的应用.但是 ...
- uniapp的APP证书、秘钥、应用包名、应用签名
uni_appid: uniapp的id 秘钥: 生成APP证书时设置的密码 应用包名: uniapp打包时有个安卓包名既应用包名 应用签名: 常是微信开放平台中特定需要的,下载微信签名工具安装到手机 ...
- 使用java实现rfc3161,openssl验证用自签名证书签名的RFC3161时间戳
我使用openssl从rfc 3161 timestampreq生成了一个rfc3161 timestampresp. 因此,我使用了自签名CA证书和自签名CA使用以下命令颁发的TSA证书: open ...
- app应用分发平台|苹果ios超级签名|APP封装打包|应用内测托管平台|iOS应用企业签名|Android应用上传内测-虾分发
CDN分发平台-注册免审核-虾分发 https://xiafenfa.com/ app应用分发平台|苹果ios超级签名|APP封装打包|应用内测托管平台|iOS应用企业签名|Android应用上传内测 ...
- android:listview实现qq,微信好友列表(头像,昵称,个性签名)
版权声明:本文为博主原创文章 http://blog.csdn.net/su20145104009 首先附上运行结果: 如果你没有学过listview请你先看一看基本知识.不想再说的那么细了 太多了. ...
- pki 证书验证机制_网络身份验证的PKI签名请求和证书颁发
pki 证书验证机制 In a PKI (Public Key Infrastructure) system, proof of identity and ownership of key pairs ...
最新文章
- 2020第11届蓝桥杯省赛Python题目
- 揭示生命的奥秘——生物信息学
- c语言重定义不同的基类型_简述usb连接器输出类型定义和不同环境下的用法
- POJ 1696 Space Ant 极角排序(叉积的应用)
- 滴滴经验分享:SQLFlow如何让运营专家用上AI?
- 如何设置iMatrix平台中列表标签(gridjqGrid)实现动态列表
- 【英语学习】【Daily English】U13 Holiday L04 How was it?
- spring cloud简介之最好参考
- 格式notepad自动对齐_6.2 对齐设置
- STL模型文件修改软件magics 21.0的安装及使用
- 高级工具 zeppelin 整合hive教程
- 被裁员工公开呛声IBM人工智能,有双好鞋却不知怎么走路
- 文件查找以及文件内容查找
- 【人在运维囧途_08】淘宝内部大量使用的开源系统监控工具--Tsar
- 天津大学仁爱学院c语言期末考试题,天津大学仁爱学院2014-2015学年第1学期期末C语言复习...
- Oracle 11g安装过程中提示先决条件检查不通过的解决方法
- 使用Haproxy Exporter监控Sparkthrift存活率
- spss分析 sus量表高低分组
- 每周论文精读05-A2J:AnchortoJointRegressionNetwork for 3D ArticulatedPoseEstimation from a SingleDepthImage
- html 文字输出语音,网页上通过JS实现文本的语音朗读