错误: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 证书名称不匹配 的相关文章

  • Sqlite数据库生命周期?关闭应用程序后它会被删除吗?

    我正在遵循一个简单的教程 该教程创建一个从 SQLiteOpenHelper 扩展的类 并创建一个包含一个表和 5 行的数据库 好的 但我需要更多地了解 android Sqlite 数据库 例如 如果应用程序关闭或手机关机会发生什么 数据
  • android中向sqlite中插入大量数据

    目前 我必须一次向我的 Android 中插入超过 100 亿条数据 然而 内存不足的问题会使程序崩溃 sqlite 插入测试非常简单 只需使用 for 循环生成 sql 插入命令并通过 开始 和 提交 进行包装 private Array
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • android xamarin 中的 reCaptcha

    我想在 Xamarin android 应用程序中实现验证码 我抓住了这个在 Android 中集成 googles reCaptcha 验证 https www c sharpcorner com article how to integ
  • 是否必须删除 Intent extra?

    这可能是一个愚蠢的问题 但是是否有一条规则规定消费活动必须显式删除 Intent 额外内容 或者只有在回收 Intent 对象时才如此 换句话说 如果我总是通过执行以下操作来链接到下一个活动 Intent i new Intent MyCu
  • 尝试将相机切换回前面但出现异常

    尝试将相机切换回前面 但出现异常 找不到 问题请检查并帮助 error 01 27 11 49 00 376 E AndroidRuntime 30767 java lang RuntimeException Unable to start
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • Android向menuItem添加子菜单,addSubMenu()在哪里?

    我想根据我的参数以编程方式将 OptionsMenu 内的子菜单添加到 menuItem 中 我检查了android sdk中的 MenuItem 没有addSubMenu 方法 尽管你可以找到 hasSubMenu 和 getSubMen
  • 如何在 PHP 5.6 中通过 php.ini 设置“verify_peer_name=false”SSL 上下文选项

    案例 我想打开 SSL 连接localhost而 SSL 证书是 FQDN 的问题 问题 没有进行特殊处理就行 下面的程序失败并显示以下消息 PHP Warning stream socket enable crypto Peer cert
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 如何在 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