Android 2.2 SSL 客户端证书错误?

2023-12-28

我的问题:

有没有人在具有多个证书链的 Android 2.1/2.2 中成功验证了带有客户端证书的 SSL 连接?

细节:

我正在尝试为Android平台实现客户端证书身份验证。 StackOverflow 中已经有很多关于如何使用 KeyStore 进行此操作的讨论,我将遵循标准方法将它们提供给 SSLContext。

context.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers() ,null);

我的客户端证书附加了 3 个证书,形成了一个证书链。在 Android 2.3+ 中,SSL 握手已成功执行,我可以继续处理请求。

然而,在 Android 2.2 中,相同的方法会抛出“错误证书错误”



error:14094412:SSL routines:SSL3_READ_BYTES:sslv3 alert bad certificate (external/openssl/ssl/s3_pkt.c:1139 0x26bd38:0x00000003)
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.nativeconnect(Native Method)
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:316)
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLOutputStream.(OpenSSLSocketImpl.java:564)
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getOutputStream(OpenSSLSocketImpl.java:479)
  

如果我在 CAfile 参数中发出带有不完整证书链的 OpenSSL 命令,则会出现相同的错误:



openssl s_client -showcerts -cert [certificateFile] -key [keyFile] -connect [ip:port] -CAfile [cert-chain]
  

这让我相信 Android 2.1/2.2 不会检查完整的链。为了确保我使用以下命令检查了 KeyStore 中的链数getCertificateChain() method.

我一直在寻找 Android 中与我的问题相关的错误,但没有找到任何错误。类似的问题已经在SO中发布但没有答案

  • ssl 无法在 android-2-2-only-in-2-3 上工作 https://stackoverflow.com/questions/9300821/ssl-not-working-on-android-2-2-only-in-2-3
  • android-2-2-ssl-库错误 https://stackoverflow.com/questions/8396548/android-2-2-ssl-library-error。 Nikolay Elenkov 在唯一答案中的最后评论似乎表明了与我相同的结论,但我找不到任何支持它的文档

这似乎确实是 Android 2.1/2.2 的一个错误。

我所做的是要求我们的管理员创建另一个由根 CA 直接颁发的客户端证书。获得该证书后,我将其作为资源放入代码中,除了让 KeyStore 指向新证书之外,它无需任何修改即可工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 2.2 SSL 客户端证书错误? 的相关文章

  • TypedArray 的 getResourceId 方法

    我正在阅读有关的文档获取资源Id https developer android com reference android content res TypedArray html getResourceId int 20int 方法 它说
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • 如何获取.so文件的依赖项列表?

    假设我有libFoo so为 android arm 编译 我不确定它链接到什么STL实现 有options http developer android com intl ru ndk guides standalone toolchai
  • 毕加索动画加载图像

    我有以下代码在毕加索中加载图像 使用可绘制的占位符在图像下载时显示 不过 我想要的是一个动画旋转进度条样式的旋转器 它可以在图像加载时不断地旋转 就像我在大多数专业应用程序中看到的那样 毕加索似乎不支持这一点 只支持静态图像可绘制 有没有办
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • 如何以编程方式断开拨出呼叫

    我使用以下代码以编程方式断开呼叫 但它不起作用 private void callDisconnect try TelephonyManager manager TelephonyManager this getSystemService
  • Android:应用内计费V3超时返回哪个响应码?

    出现网络超时情况时 Google Play 应用内结算服务 ice er V3 将返回哪些响应状态代码 它的所有功能都是统一的吗 我将在这里描述我的发现 我通过拔掉主机插头 在安装了全功能 GP GP Store V3 10 10 GP S
  • 尝试在模拟器上安装第二个 flutter 应用程序时出错

    我创建了一个简单的 flutter 应用程序并在 android 模拟器上运行它 效果还不错 现在我创建了另一个 当我尝试在模拟器上运行它时 我得到 Error ADB exited with exit code 1 adb failed
  • 如何查看 Android 上的 Wi-Fi 是否已连接?

    我什至不希望我的用户尝试下载某些内容 除非他们连接了 Wi Fi 然而 我似乎只能判断是否启用了 Wi Fi 但他们仍然可以有 3G 连接 android net wifi WifiManager m WifiManager getSyst
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • 无法获取 Facebook 传入请求

    我正在尝试在我的 Facebook android 游戏应用程序中实现发送数据并接受该数据 我正在关注https developers facebook com docs android send requests notification
  • 如何以编程方式启动 ssh 服务器 android,以及如何获取连接到设备的用户名和密码

    我正在开发像这样的应用程序sshdroid 我想在 Android 操作系统上打开 ssh 连接 并且我想从电脑连接应用程序 我使用了 JSCH lib 但是这个lib用于将android连接到pc 我的要求是pc到android 任何人都
  • JavaDoc 在 Android 项目中不起作用

    我在 Ubuntu 10 04 上使用 Eclipse 3 5 2 进行 Android 开发 我安装了 来自 Ubuntu 存储库的 Sun JDK Eclipse 3 5 2 经典 来自 eclipse org 解压到 opt ecli
  • Android Studio IDE 上的“文本/设计”选项卡缺少新的 Android 项目

    如何在创建新项目期间自动创建的 Activity main xml 文件的 src main res layout 文件夹中启用文本 设计选项卡 如果我右键单击并在所述文件夹上创建 xml 文件 则设计 文本选项卡存在 有什么建议吗 谢谢
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 在Android Studio中更改项目主题?

    我使用浅色主题创建了一些项目 现在我想将其更改为深色 但我不知道该怎么做 顺便说一句 我不是问如何在代码中做到这一点 只是问如何更改项目的默认主题 在 AndroidManifest xml 的 application 标签下 您可以设置您
  • 在android中跟踪FTP上传数据?

    我有一个运行 Android 的 FTP 系统 但我希望能够在上传时跟踪字节 这样我就可以在上传过程中更新进度条 安卓可以实现这个功能吗 现在 我正在使用org apache common net ftp我正在使用的代码如下 另外 我在 A
  • 在没有 Wifi 的情况下获取 Android 设备的 MAC 地址

    如何获取没有 Wifi 接口的 Android 设备 例如 Android 模拟器 的网络接口的 MAC 地址 通过WifiManager返回获取的WifiInfonull EDIT 更清楚地说 我必须与本地网络上的现有网络协议 不是我设计
  • Android 和 Java 中绘制椭圆的区别

    在Java中由于某种原因Ellipse2D Double使用参数 height width x y 当我创建一个RectF在Android中参数是 left top right bottom 所以我对适应差异有点困惑 如果在 Java 中创

随机推荐

  • 跨度和并联环路

    我在理解动态多线程方面遇到问题 我有以下算法 第 16 页 MAT VEChttp mitpress mit edu books chapters 0262033844chap27 pdf http mitpress mit edu boo
  • 登录后如何转发到正确的URL

    我有一个网站 其中有一个包含日志列表的网页 现在我通常会为某些用户提供访问该页面的链接 例如 http 172 20 22 77 someapp results htm id 45 http 172 20 22 77 someapp res
  • 如何阻止 ggrepel 标签在 R/ggplot2 中的 gganimate 帧之间移动?

    我想在 ggplot 中的行尾添加标签 避免它们重叠 并避免它们在动画期间移动 到目前为止 我可以将标签放在正确的位置并使用geom text 但是标签重叠 或者我可以使用以下方法防止它们重叠geom text repel但标签没有出现在我
  • 如何在 Sublime Text 2 和 3 中通过键盘使用侧边栏?

    使用时崇高文本2我们倾向于打开side bar浏览我们项目中的文件 文件夹 为此我们可以使用热键ctrl k ctrl b 在窗口中 然而 一旦我们进入side bar we 无法与键盘一起使用 例如箭头 我们必须坚持用我们自己的鼠标来使用
  • PHP从关联数组中删除元素

    我有一个 PHP 数组 看起来像这样 Index Key Value 0 1 Awaiting for Confirmation 1 2 Assigned 2 3 In Progress 3 4 Completed 4 5 Mark As
  • 更改 Foreach 顺序?

    无论如何 是否可以从末尾到开头而不是从开头到末尾遍历列表 最好不重新排序列表 using System Linq foreach var item in source Reverse Edit 如果您要专门处理某个问题 还需要执行一个步骤L
  • 对 NULL 值(或未定义)指针进行 Realloc

    我正在读关于realloc http en cppreference com w c memory realloc并对那里提到的一点感到困惑 考虑下面的代码 include
  • Android:使用 junit 4.13 时未解析的参考

    将 gradle 依赖项中的 junit 版本更新到 4 13 后 类和注释如Assert Testjunit包下的 等在我的代码中使用时显示为红色 棉绒检查说 Unresolved reference
  • Intent过滤器浏览器android:pathPrefix url参数

    所以我希望我的活动能够在意图 浏览器 调用链接时捕获 http host info username samplename 而不是当 http host info username noname 这是我来自 AndroidManifest
  • 与元素类型“p:dataList”关联的属性“pt:data-inset”的前缀“pt”未绑定

    我有以下 Primefaces 页面和控制器 Page
  • 理解 Grails 中的 withNewSession

    首先grails的文档对withNewSession的解释如下 https grails github io grails doc latest ref Domain 20Classes withNewSession html Defn 提
  • 什么时候最好使用正则表达式而不是基本字符串分割/子字符串?

    似乎每当出现我需要字符串的一部分 有关所述字符串的信息等的情况时 我都会定期选择使用字符串解析还是正则表达式 出现这种情况的原因是我们正在评估肥皂头的操作 after它已通过 WCF 的 OperationContext 对象解析为可管理的
  • 创建一个有效的字数统计器,包括中文/日文和其他重音语言

    在尝试弄清楚如何对字符串进行有效的单词计数器之后 我了解了 PHP 的现有函数str word count http php net manual en function str word count php但不幸的是它没有做我需要它做的事
  • 将空值插入 cassandra

    我有一些字段存储到 Cassandra 中 但其中一些字段在任何给定点都可能为空 由于它们的数量相当多 如果我在将它们添加到 INSERT 之前不检查每一个是否为空 它会使代码更具可读性 这样做有什么坏处吗 EDIT 我找到了一张 jira
  • 使用 python requests 库进行谷歌搜索

    我尝试过查找 但所有其他答案似乎都在使用 urllib2 我刚刚开始尝试使用请求 但我仍然不太清楚如何从页面发送或请求其他内容 例如 我将有 import requests r requests get http google com 但我
  • Apache POI 将系列名称添加到 LineChart 中

    我正在 Excel 文档中使用 Apache POI 创建折线图 据我设法实现的目标如下图所示 我使用 Apache svn 中的示例编写了代码 所以我当前的方法如下所示 Drawing drawing question createDra
  • 从有限集中进行朴素随机选择的 O 值是多少?

    这个问题 https stackoverflow com questions 1293609 randomize value in javascript从有限集中获取随机值让我思考 人们想要从一组 Y 值中检索 X 个唯一值是很常见的 例如
  • 在 C# 中使用时间跨度简化 if else 条件

    我必须创建一份实时报告 为此 我必须为特定日期的每个小时编写条件 在下面的代码中 条件检查当前星期几 然后检查当前时间 并据此生成报告 protected void sample TimeSpan zerothHour new TimeSp
  • 从 z3 模型中仅提取一个值

    我正在寻找相当于 z3 源 API获取价值 例如 当我有以下查询时 我可以轻松指定我想要查看哪些值 declare const s1 String declare const s2 String assert 8 str len s1 as
  • Android 2.2 SSL 客户端证书错误?

    我的问题 有没有人在具有多个证书链的 Android 2 1 2 2 中成功验证了带有客户端证书的 SSL 连接 细节 我正在尝试为Android平台实现客户端证书身份验证 StackOverflow 中已经有很多关于如何使用 KeySto