问题标签 [android-network-security-config]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
642 浏览

android - Android 中的默认网络安全配置行为

当没有声明网络安全配置时,应用程序的默认行为是什么?

在这种情况下系统会拒绝用户证书,还是取决于应用程序的编译 API 版本?

0 投票
0 回答
881 浏览

android - sslhandshakeexception pin验证失败

我在应用程序中实现了 SSL 固定,这是我的设置。

network_security_config.xml

我在看这个网站,它写了关于生成 pin 的内容,但不知道如何。

https://calvin.my/posts/implement-and-verify-certificate-pinning-in-android

该网站说可以使用以下命令获取 PIN。它将在输出的最后一行打印 pin 哈希。复制此哈希并将其放入您的配置文件中。

有人可以指导我在 CMD 或 Android 终端中运行 openssl commant 的确切位置吗?

抱歉各位,我对此一无所知,谢谢您的帮助。

0 投票
1 回答
1005 浏览

android - 如何解决“javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。”

我是网络新手,当我尝试从错误中获取数据时出现此newsapi.org错误:javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.. 我查看了一些答案,但一切都从我的脑海中蹦了出来。我也尝试在 newsapi.org 中搜索“公共认证”,但我找不到任何东西。请任何人帮助我,我可以找到谁的认证,以及有关信任锚和基础知识的任何来源或链接。

谢谢你。

0 投票
0 回答
79 浏览

android - AIR / Android:在清单中添加资产和引用

我正在尝试将 network_security_config.xml 文件添加到我的 Android / AIR 应用程序中。

如果它是纯 Android,我只需将它添加到我的 /res/xml/ 目录,然后在带有属性的清单应用程序标记中引用它;android:networkSecurityConfig="@xml/network_security_config"

但是,Adobe 控制“res”目录并将其专门用于已编译的 AS 类。我添加到 APK 的任何媒体都出现在“assets”文件夹而不是“res”文件夹中,因此我找不到引用 XML 文件的方法。

有人知道我可以在我的 Android 清单的 assets 文件夹中引用 network_security_config.xml 吗?或者有没有更好的方法为我的 AIR / Android APK 设置 network_security_config.xml?

谢谢,盖乌斯

0 投票
2 回答
1469 浏览

java - API 调用的无效改造响应

我正在尝试使用 Retrofit 2 从 Android 登录服务器。用于登录的 API 在邮递员(REST 客户端工具)中运行良好,并得到这样的响应

但是,当我使用 Retrofit 2 在 Android 中尝试相同的流程时,我得到了不同的输出。这是我在 android 中调用 Login API 时的 Android 日志片段。

用于登录的 Android Activity 类如下

请任何人都可以告诉我为什么我在尝试使用 Android 时会获取 HTML 内容。需要做什么才能获得正确的 JSON 响应?

0 投票
9 回答
169781 浏览

java - Android(9)Pie中如何允许所有网络连接类型HTTP和HTTPS?

从现在的 Android 9 Pie 开始,没有加密的请求将永远无法工作。默认情况下,系统会期望您默认使用 TLS。您可以在此处阅读此功能因此,如果您只通过 HTTPS 发出请求,那么您是安全的。但是,通过不同站点发出请求的应用程序呢,例如类似浏览器的应用程序。

如何在 Android 9 Pie 中启用对所有类型连接 HTTP 和 HTTPS 的请求?

0 投票
0 回答
299 浏览

android - System.err:javax.net.ssl.SSLPeerUnverifiedException:主机名 XXX 即使在添加网络安全配置后也未验证

我在清单中添加了网络安全配置,但我仍然收到主机名未验证错误。

但我仍然收到以下错误。

0 投票
1 回答
2144 浏览

ssl - Android 9 Google Pixel One 上的 SSL 问题

我正在尝试从没有 Internet 连接的网络中使用 10.10.10.2 的 Android 主机向主机 10.10.10.1 执行 HTTPS 请求 - 只有 WiFi 2 对等 AP 和 Android 9 Google Pixel One 设备。

network_security_config.xml使用自签名的证书创建了 CN=10.10.10.1 和 SAN= DNS: 10.10.10.1 PI: 10.10.10.1。

我没有收到验证错误并观察到成功的请求传入服务器 - 数据是 HTTP 请求,已解密并显示在服务器日志上。但是服务器无法发回数据!它发送,但由于某种原因,Android 手机不接受这些数据 - 只是被忽略了。

我看到数据包正在从服务器发送到电话,并且服务器反复重试关闭 SSL 套接字,直到错误或成功(我在调查期间故意做出这种行为) - 这是来自 WiFi 空气的 Wireshark 转储:

Wireshark 转储

这是我来自 AsyncTask 的请求

我怀疑 Android 9 Network Security 确实会以某种方式阻止流量。我尝试使用 SSLSockets,将端口从 443 更改为例如 1234 - 不走运。

事实上,我的应用程序是用 Qt 创建的,首先我使用了 Qt 的东西,但没有运气 - 我在 MainActivity 中回退到 Android Java 代码,我通过 Qt 代码中的 JNI 调用。结果是一样的,我没有更多的想法......

在哪里挖?

UPD1

当使用仅包含(无 IP:10.10.10.1)的 SAN 生成自签名证书时,DNS:10.10.10.1SSL 失败并显示警告:

相反,使用 SAN IP:10.10.10.1(没有 DNS:10.10.10.1) - 像以前一样工作 - 会话建立,数据传输到服务器并解密,但从服务器到客户端的响应只是被客户端忽略。

UPD2

我还尝试将域名some.device用于 10.10.10.1 设备,并使用 CN 和 SAN DNS = some.device 颁发证书。它已由 Android 9 客户端解决,数据发送成功,但响应仍未被接受。

看起来像Android错误。

0 投票
1 回答
1941 浏览

android - 无法从网络安全配置 XML 中引用原始资源

我正在尝试按照 Android 文档在此处使用自定义证书。所需的网络配置文件是:

我已经创建了 network_security_config.xml 并将引用 a 添加ndroid:networkSecurityConfig="@xml/network_security_config"到我的清单中。我有需要包含的 .crt 文件,但我遇到了两个问题:

  1. 我无法在我的原始文件夹中创建目录,当我这样做时,它会在我的文件系统中创建目录,而不是在项目的原始资源目录中。

  2. 代替目录我只是直接在原始文件夹中引用我的 .crt 文件,但是当我尝试引用证书时,这是我的 network_security_config.xml

    /li>

我得到一个带有错误“缺少 src 资源”的红色曲线,当我尝试构建时,构建日志输出错误:

我不知道为什么我无法从 XML 引用原始资源文件夹中的资产或在其中创建文件夹,这似乎是我最大的问题。我可以在代码中使用 R.raw 引用原始资源,但我从来不需要使用 @raw 进行引用,而且我不确定它为什么不能按描述工作。

0 投票
1 回答
2290 浏览

android - Android WebView 和网络安全配置

我正在 Android 8(26 API,Oreo)上开发,并android.webkit.WebView在我的应用程序中使用。

当我用我的页面加载页面时,我会实现“安全网络连接” WebView(换句话说,我会避免中间人问题和自签名证书)

为此,我使用了网络安全配置(在 Android 上从 7.0 N 版本开始,24 API)

所以:

res>xml>network_security_config.xml

我发现在这里MY_PIN插入MY_DOMAIN.comhttps ://report-uri.com/home/pkp_hash

manifest>AndoridManifest.xml

在我的应用程序的 onCreate 中,我只需执行以下操作:

根据 Android 文档,我做得对,但我有一个问题:就像network_security_config.xml从未检查过,因为我可以为 pin 设置每个“随机”和“错误”值并且它正常工作(URLMY_DOMAIN.com正常加载而没有阻塞行为) .

所以这意味着如果某个中间人返回我在res>xml>network_security_config.xml应用程序中编写的一个不同的引脚,则继续运行良好并且没有安全行为。它也不执行其中一种被覆盖的错误方法WebViewClient

请帮助我无法理解我的错误。