错误:Android 上的自签名 SSL 证书名称不匹配

2023-12-13

我正在尝试使用内置浏览器从 Android 2.3.4 访问受 SSL 保护的 Web 应用程序。

服务器证书是我使用创建的自签名证书MAKECERT并安装在服务器上。 当我尝试访问该页面时,我从浏览器收到一条错误消息,指出The name of the site does not match name on the certificate.

我已经验证,服务器地址与我的证书的公用名完全匹配(它实际上只是一个 IP 地址)。

当我尝试在 Android 设备上访问使用非自签名证书保护的其他网站时,不会弹出该消息。

如果我在桌面上使用 IE 或 Chrome 访问同一页面(除了签名机构消息​​),我不会收到任何警告,并且一旦我在受信任的根 CA 中安装了证书,浏览器就会顺利接受该证书。

我是否应该认为该消息实际上是 Android 拒绝自签名证书?

对此我有些疑惑。

我尝试在凭证存储中安装证书,但这并不能改善情况。现在我不知道下一步我会尝试什么。

问题是:创建 Android 可接受的自签名证书时是否应该遵循任何特定事项?有没有人设法让 Android 接受自签名证书而没有此警告?

我还能尝试什么?

-UPDATE-Bruno的回复引导我走向正确的方向,所以我成功地向前迈出了一步:我重新制作了证书,添加了SAN(不得不放弃MAKECERT for OpenSSL,跟随那里安迪·阿里斯门迪的指示).

现在消息已经消失,但我被阻止了已经讨论过的“证书颁发机构不可信”问题在这个帖子中,所以我仍在努力寻找问题的最终解决方案 - Android 浏览器上不会弹出任何警告。


我已验证,服务器地址与通用地址完全匹配 我的证书名称(实际上只是一个 IP 地址)。

Android的主机名验证器更严格符合RFC 2818比某些浏览器。根据规范,如果使用 IP 地址,则它必须位于主题备用名称条目中IP地址类型:不在 DNS 类型的 SAN 条目上或在 CN 中:

如果存在 dNSName 类型的 subjectAltName 扩展,则必须将其用作身份。否则,(最具体的)常见 必须使用证书主题字段中的名称字段。 尽管使用通用名称是现有做法,但 已弃用并鼓励认证机构使用 改为 dNSName。

[...]

在某些情况下,URI 被指定为 IP 地址而不是主机名。在这种情况下,iPAddress subjectAltName 必须存在 且必须与 URI 中的 IP 完全匹配。

最简单的方法是使用主机名。 (在证书中使用 IP 地址从来都不太实际。)或者,生成带有 SAN IP 地址条目的证书。 (您可能感兴趣this.)

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

错误:Android 上的自签名 SSL 证书名称不匹配 的相关文章

随机推荐

  • 如何在 TensorFlow 中使用图像和权重矩阵创建对抗图像?

    In the 打破 ImageNet 上的线性分类器在博客文章中 作者提出了一个非常简单的示例 说明如何修改图像来欺骗分类器 给出的技术非常简单 xad x 0 5w其中 x 是 1d 向量 w 是 1d 权重 这一切都很好而且很清楚 然而
  • 计算 data.table 中连续分组列之间的差异

    我的数据结构如下 DT lt data table Id c 1 2 3 4 5 Va1 c 3 13 NA NA NA Va2 c 4 40 NA NA 4 Va3 c 5 34 NA 7 84 Va4 c 2 23 NA 63 9 Vb
  • 在 Java 中从 URL 读取 JSON 的最简单方法

    这可能是一个愚蠢的问题 但是最简单的阅读和解析方法是什么JSON from URL in Java 在 Groovy 中 只需几行代码即可 我发现的 Java 示例长得离谱 并且有巨大的异常处理块 我想做的就是阅读内容这个链接 使用 Mav
  • 根据 Pandas 中的行匹配,有条件地使用另一个 DataFrame 中的值填充列

    我发现自己在尝试解决这个问题 自动化税务文书工作 时迷失了方向 我有两个数据框 一个包含欧元 美元汇率的季度历史记录 另一个包含我自己的发票 例如 import pandas as pd import numpy as np usdeur
  • 构建 Google App 脚本以将相似的行合并为一行

    很多人都在问我为什么要做这个 我想这样做 以便当我进行邮件合并 这从图书馆向学生发送逾期图书列表 时 我不会多次向学生发送电子邮件 我从来没有多次使用这些数据 我只用它来发送快速消息 我从不操纵或使用这些数据 所以我不在乎它是否很难使用 我
  • R语言文本摘要

    我有一个很长的文本文件 使用以下帮助R language我想用至少 10 到 20 行或小句子来总结文本 如何用至少 10 行总结文本R language 你可以尝试这个 来自LSAfun包裹 genericSummary D k 1 其中
  • 运行 gulp 时出现“任务函数必须在 Gulp.set 中指定”错误

    我在安装gulp时总是遇到同样的错误 C Users Thomas Desktop Sites CT Graphics colpaertmarc be gt gulp assert js 350 throw err AssertionErr
  • 如何在 python 海龟中将文本制作成按钮?

    我想将 CAT 一词制作成一个按钮 因此当单击它时 它会显示 CAT 另外 当我想要的按钮不是按钮时 它应该位于单词现在所在的位置 需要提供任何帮助 谢谢 我已经尝试过 tkinter 模块 但问题是它使用按钮打开一个单独的窗口 我想要的是
  • 如何销毁特定的 PHP 会话

    我正在寻找有关如何销毁 PHP 中的特定会话的见解 通过合作伙伴网站 用户使用令牌登录主网站并获得完整的会话 如果用户从合作伙伴网站注销 合作伙伴网站也可以调用销毁函数 然后我们还应该注销我们自己的用户 对此最好的方法是什么 这Zend S
  • Spark 支持子查询吗? [复制]

    这个问题在这里已经有答案了 当我运行此查询时 我收到此类错误 select from raw 2 where ip NOT IN select from raw 1 org apache spark sql AnalysisExceptio
  • D3 mousedown事件删除错误的节点

    我正在尝试在此添加删除节点功能jsfiddle The refresh方法是添加on mousedown mousedownNode 每个圆圈的事件 但是当我单击节点时GW2它删除了DB节点 我发现mousedownNode方法删除了正确的
  • ElasticSearch (2.2) startDate 和 endDate 之间的 Java 过滤器(如果存在)

    我想要使 用elasticsearch java客户端 进行以下过滤 如果 startDate 存在且低于现在 如果 endDate 存在且大于现在 我已经有以下内容 但它没有显示没有开始日期或结束日期的一次 Start date end
  • jQuery 中 $.getJSON() 和 $.ajax() 之间的区别

    我正在调用 ASP NET MVC 操作 public JsonResult GetPatient string patientID 使用 jQuery 从 JavaScript 生成 以下调用有效 getJSON Services Get
  • jquery - 从回调函数(在发布请求中)返回值到其内部的函数中?

    我有一个 javascript 函数 它将数据发送到验证脚本并从那里获取值 post 请求上的回调函数返回一个布尔值 我试图获取entire函数返回该布尔值 现在 回调函数返回正确的值 但函数本身不返回任何内容 这是代码 function
  • 某个时间点的事件队列量

    我有一个事件队列 由记录数字字符串 打开时间 日期时间和关闭时间 日期时间组成 这些记录可以追溯到一年左右 我想要得到的是一个折线图 显示每天晚上 8 点的队列量 因此 如果票证在当天晚上 8 点之前或前一天的任何时间打开 但截至 8 点尚
  • HTML5 画布上的图像渐变

    我想在图像上获得径向渐变效果 alpha 1中间透明 边缘透明 您对我如何做到这一点有什么想法吗 如果我没记错的话你想做的是 绘制图像 在其上绘制径向渐变 其中边界是透明的 中间是不透明的 并使用globalCompositeOperati
  • SQL:OPENROWSET,无法构建请求字符串?

    我想构造与 OPENROWSET 方法一起使用的查询 Example SELECT FROM OPENROWSET SQLOLEDB srv login mdp SELECT FROM Case WHERE ID caseID 但是当我这样
  • 无法重新分配自动全局变量 _POST

    我收到以下错误 Fatal error Cannot re assign auto global variable POST in C Program Files x86 Zend Apache2 htdocs includes class
  • 我们如何在 iPhone Xcode 中处理多个 NSURLConnection?

    我正在开发一个小应用程序 其中有多个 NSURLConnection 我已经创建了该 NSURL 连接 但我不知道如何处理它 我的代码如下所示 void loadTrafficAndEvent int a 10 Get the map vi
  • 错误:Android 上的自签名 SSL 证书名称不匹配

    我正在尝试使用内置浏览器从 Android 2 3 4 访问受 SSL 保护的 Web 应用程序 服务器证书是我使用创建的自签名证书MAKECERT并安装在服务器上 当我尝试访问该页面时 我从浏览器收到一条错误消息 指出The name o