Android webview 得到 sslError SSL_UNTRUSTED 但证书有效

2024-01-10

我已经实施了onReceivedSslError我的 WebViewClient 中的方法来正确处理 webview 中无效的 https 证书:

@Override
        public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
            final AlertDialog.Builder builder = new AlertDialog.Builder(WebActivity.this);
            String message = "SSL Certificate error.";
            switch (error.getPrimaryError()) {
                case SslError.SSL_UNTRUSTED:
                    message = "The certificate authority is not trusted.";
                    break;
                case SslError.SSL_EXPIRED:
                    message = "The certificate has expired.";
                    break;
                case SslError.SSL_IDMISMATCH:
                    message = "The certificate Hostname mismatch.";
                    break;
                case SslError.SSL_NOTYETVALID:
                    message = "The certificate is not yet valid.";
                    break;
            }
            message += " Do you want to continue anyway?";

            builder.setTitle("SSL Certificate Error");
            builder.setMessage(message);
            builder.setPositiveButton("continue", (dialog, which) -> handler.proceed());
            builder.setNegativeButton("cancel", (dialog, which) -> handler.cancel());
            final AlertDialog dialog = builder.create();
            dialog.show();
        }

当 webview 加载我的网页时SslError.SSL_UNTRUSTED正在检测到错误。但是,如果我在 Chrome(桌面版或移动版)中打开相同的网址,则证书被视为有效且受信任:

为什么会发生这种情况?


对我来说,这是我试图访问的服务器的问题。它的中间证书链已损坏。这是重定向服务器的链条断了。 当存在断链时,webview 无法解决,因为它不知道在哪里寻找正确的证书。

使用这个工具 https://www.ssllabs.com/ssltest/检查常见的错误配置。请务必检查所有重定向。

安卓不支持权威信息获取 https://www.rfc-editor.org/rfc/rfc5280#section-4.2.2.1

因此不存在友邦保险抓取 https://www.thesslstore.com/blog/aia-fetching/

但是?!...它可以在浏览器中运行是的,它适用于浏览器,因为所有浏览器都带有一个中间体列表,当证书链断开时可以依靠中间体列表。

解决方案:修复服务器上的证书链。

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

Android webview 得到 sslError SSL_UNTRUSTED 但证书有效 的相关文章

  • 拖动时跳转 ImageView。 getX() 和 getY() 值正在跳跃

    我创建了一个用于拖动视图的 onTouchListener 如果我使用的话 图像可以顺利拖动getRawX and getRawY 问题是 当您向下放置第二个指针然后抬起第一个指针时 图像将跳转到第二个指针 此 onTouchListene
  • Android 中的列表(特别是 RecyclerView 和 CardView)如何工作

    请原谅我问这个问题 但我是 Android 开发新手 尽管我正在尝试了解developer android com 网站上的基础知识 但大多数示例 即使他们说它们是为 Android Studio 构建的 尚未设置为使用 Gradle 因此
  • 改造中的多个队列导致内存不足错误?

    我正在使用retrofit2 做我的项目 当我的呼叫失败时 我再次重复相同的呼叫 重复此 呼叫使我的应用程序强制关闭 当我查看日志时 我得到了错误日志 如下所示 我觉得这是由于同一呼叫的多次排队造成的 所以我在排队之前就这样做了 我打电话给
  • 当路径的点超出视野时,Android Canvas 不会绘制路径

    我在绘制路径时遇到了 Android Canvas 的一些问题 我的情况是 我有一个相对布局工作 如地图视图 不使用 google api 或类似的东西 我必须在该视图上绘制一条路径 canvas drawPath polyPath bor
  • ExpandableListview OnGroupClickListener 未触发

    我正在关注这个 以编程方式折叠 ExpandableListView 中的组 https stackoverflow com questions 4314777 programmatically collapse a group in ex
  • Android上如何获取ImageView的Drawable的矩形?

    我想要获取将包裹 ImageView 的 Drawable 的矩形对象 而不是包裹 ImageView 的矩形 我将使用该矩形在 Drawable 周围绘制一些奇特的矩形 我怎样才能得到那个矩形 Rect rect new Rect Ima
  • React Native Expo StackNavigator 重叠通知栏

    我正在尝试为我的 React Native Expo 应用程序实现导航栏 这里有一个问题 dependencies expo 18 0 3 react 16 0 0 alpha 12 react native 0 45 1 react na
  • 透明 9patch 图像:显示出线条

    我得到了一个透明的 9 补丁图像 其中有 9 条补丁线显示槽 This is the output 显然我不希望水平线可见 这就是我创建 9patch 的方式 This is the final image that is used in
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • 在android中,将相机预览流到视图上

    我想将 Android 相机的相机预览流式传输到视图上 目的是随后使用 onDraw 将各种内容添加到视图中 我不需要随时实际捕捉图像 它不必是最高质量或每秒最大数量的帧 有谁知道如何做到这一点 将其添加到您的 xml 中
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • Android SearchView 在启动时隐藏键盘

    我有一个小问题正在尝试解决 当我打开应用程序时 键盘会显示输入搜索视图的查询 不过 我只想在单击搜索视图时显示键盘 我该如何解决 Thanks 这对我有用 用于隐藏焦点的代码 searchView SearchView view findV
  • 如何将样式应用于我拥有的所有 TextView? [复制]

    这个问题在这里已经有答案了 可能的重复 设计所有 TextView 或自定义视图 的样式 而不向每个 TextView 添加样式属性 https stackoverflow com questions 6801890 styling all
  • 离子初始加载时间

    我正在使用 Ionic 构建一个简单的应用程序 但我的应用程序在冷启动时的初始加载时间方面存在性能问题 这是我所做的 collection repeat 代替带有 track by 的 ng repeat 原生滚动 overflow scr
  • Android 标记如何实现拖放?

    你好 我正在 Android 中开发 MapView 应用程序 我有三个标记 我希望稍后能够使用 Google Map API getlocation function 为了尝试一下 我想使用拖放功能移动标记 然后检查位置 任何人都可以通过
  • Android-dispatchTouchEvent 给了我一个 StackOverflowError

    这里我有一个带有 setOnTouchListener 的 ViewFlipper 它工作得很好 然后我膨胀 ReLayNewsItem 然后将其添加到 ViewFlipper 现在我希望 WebView web 监听触摸事件并将它们传递给
  • 丢失应用程序的密钥库文件(但已启用 Google Play 应用程序签名)

    我已经失去了原来的keystore用于签署我的应用程序的文件 我的应用启用了 Google Play 应用签名 如果我联系 Google 支持人员 是否可以重置密钥 以便我可以继续上传到此包 我希望我可以做到这一点 因为应用程序签名已启用
  • Android MulticastSocket.joinGroup 不会触发发送 IGMP 消息

    Code MulticastSocket s new MulticastSocket InetAddress addr InetAddress getByName 230 230 230 1 s joinGroup addr 在 Ubunt
  • 将对象从手机共享到 Android Wear

    我创建了一个应用程序 在此应用程序中 您拥有包含 2 个字符串 姓名和年龄 和一个位图 头像 的对象 所有内容都保存到 sqlite 数据库中 现在我希望可以在我的智能手表上访问这些对象 所以我想实现的是你可以去启动 启动应用程序并向左和向
  • 如何访问我的 Android 程序中的联系人

    我正在制作一个短信应用程序 并且想要访问我的 Android 应用程序中的联系人 我想访问联系人 就像他们在实际联系人列表中一样 选择后 我需要返回到我的活动 在其中我可以向该人发送短信 或者是否可以访问存储联系人的数据库 我的代码如下所示

随机推荐

  • 多播 IP 地址 - 在调用 recvfrom 时被阻止

    我正在编写一个简单的多播应用程序 我打算在本地主机上运行它 我做了以下事情 char maddr sendfd socket struct sockaddr in sasend sasend sin family AF INET sasen
  • 更改 UILabel 行数后调整 UIStackView 的大小

    我的 iOS 应用程序有一个带有一个 UITableViewCell 的表格视图 其布局如下 1 个堆栈视图包含 2 个标签和 1 个按钮 当用户点击按钮时 中央标签的行数从 0 变为 2 如下所示 现在这里有两个问题 1 调整UIStac
  • 基于多个单元格值的 Excel 宏过滤器

    我有一个简单的宏 可以根据 A13 单元格中的值过滤行 效果很好 With ActiveSheet Range B2 F5000 AutoFilter Field 2 Criteria1 Range A13 End With 但我需要为此过
  • 我可以将此宏更改为内联函数而不影响性能吗?

    编辑 让我们将其命名为 测量如何出错的教训 但我仍然没有弄清楚到底是什么导致了差异 我发现了一个非常快的整数平方根函数here http www azillionmonkeys com qed sqroot html作者 马克 克朗 至少在
  • mongo-cxx-driver 库构建但持续存在链接和调试问题

    我正在尝试构建 mongo cxx driver 以便在 Windows 10 上使用 Visual Studio 2015 与 Cinder 一起使用 Cinder 使用 Boost 1 58 因此我根据其包含的 Boost 版本构建了驱
  • 实现接口但将成员更改为私有

    默认情况下 接口的所有成员都是公共的 但是我的接口中有一些属性我想用作实现我的接口的一些子类的私有成员 这是可以做的事情吗 还是我在这里偏离了基础 这些天我正在努力在我的架构中使用更多接口 所以我还不太熟悉 接口的要点是它们提供了其他对象可
  • 使用列表对象 Bot 框架进行提示对话框选择

    我正在创建一个 PromptDialog Choice 它填充存储在数据库中的对象选项列表 但是 它只显示对象的类型 而不显示选项的名称 谁能建议我从数据库加载选项并将其与 PromptDialog 绑定的最佳方法 这是我尝试过的 priv
  • 更改 Facebook Like 按钮的大小

    我使用下面的代码来获取 Facebook 的 Like 按钮 现在的问题是 我想更改呈现的 赞 按钮的大小 我尝试了宽度属性 但它根本不起作用 我尝试重写 facebook 用于以下代码的 CSS 类 但重写 CSS 类也不起作用 那么请告
  • 在 Android 上的游戏中购买时 Soomla IAB 错误

    我使用 unity 3d 制作了一个简单的游戏 只是为了测试 Google 服务 对于 Google Play 游戏服务 我使用 googleplayplugin 对于 iab 使用 soomla 插件 我认为所有配置都正确 我在我的 ne
  • LocationManager 正在服务 - 如果 1 分钟内没有修复则需要停止

    我有定期服务 每 5 分钟开始使用一次警报 服务实现 LocationListener 以获取 GPS 定位并将其保存到 SqLite 数据库中 我给服务人员 1 分钟的时间来尽可能获得最佳修复 如果在此之前我的准确率 一切都很好 我还有代
  • 如何在Python中使用密码加密文本?

    令人惊讶的是 在谷歌上很难找到这个问题的直接答案 我想从用户那里收集一段文本和一条消息 例如1PWP7a6xgoYx81VZocrDr5okEEcnqKkyDc hello world 然后我希望能够以某种方式加密 解密带有文本的消息 以便
  • SQL Server 2008 R2 地理距离?

    我创建了一个包含以下列的表 Text varchar 255 Location geography 它们包含荷兰的一些城市作为数据 从谷歌地图获取坐标 Rotterdam POINT 51 925637 4 493408 4326 Utre
  • SVN最佳实践-删除已完成的分支

    完成 重新集成分支后 最佳做法是删除该分支 以便您的头分支文件夹仅显示当前分支吗 如果是这样 什么时候删除重新整合的分支合适 次要版本发布后 这是我们标记的时间 Cheers 根据this https stackoverflow com q
  • 尝试安装 python 时出现错误

    我已经下载了 python 3 6 1 tar xz 然后我提取了它 有一个文件 README rst 这是说明文件 并有如何安装的说明 在 Unix Linux BSD macOS 和 Cygwin 上 configure make ma
  • k-最大双重选择

    想象一下你有两个麻袋 A and B with N and M球分别在其中 每个球都有一个已知的数值 利润 系统会要求您提取 有替换 总利润最大的一对球 由所选球的乘法给出 最佳提取是显而易见的 从其中选择最有价值的球A以及来自B 当你被要
  • 如何使用BluetoothHeadset API获取蓝牙连接的设备

    我想获取蓝牙连接设备的列表 而不仅仅是配对的设备 I found BluetoothHeadset API in API 级别 11它提供了方法getConnectedDevices 获取已连接的蓝牙设备的列表 如何使用此 API 获取蓝牙
  • 对多于一列进行过滤

    我有一个可以从一列中过滤的表格 handleSearch function oEvent var sValue oEvent getParameter value var oFilter new sap ui model Filter RA
  • jqGrid ColumnChooser 有完整的工作示例吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 At http www trirand com jqgridwiki doku php id wiki jquery ui methods
  • 单元测试有哪些流行的命名约定? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Android webview 得到 sslError SSL_UNTRUSTED 但证书有效

    我已经实施了onReceivedSslError我的 WebViewClient 中的方法来正确处理 webview 中无效的 https 证书 Override public void onReceivedSslError WebView