如何修复 NET::ERR_CLEARTEXT_NOT_PERMITTED 错误? (5种方法)

已发表: 2023-12-15

您是否希望修复 NET::ERR_CLEARTEXT_NOT_PERMITTED 错误? 那么您就找到了正确的位置。

此 NET::ERR_CLEARTEXT_NOT_PERMITTED 错误特定于 Android 用户,我们知道与其他移动操作系统相比,Android 拥有巨大的市场份额。

这意味着您并不是这一特定错误的唯一受害者,但可能有许多像您一样的用户有时遇到过或容易受到此错误消息的影响。

但您无需担心。 在这篇文章中,我们将尽力消除您对此错误的所有疑虑,并帮助您准确了解出了什么问题以及需要采取哪些措施来解决此问题。

因此,请继续关注并继续阅读这篇综合文章直到最后。


目录
如何修复 NET::ERR_CLEARTEXT_NOT_PERMITTED Android 错误?
什么是 NET::ERR_CLEARTEXT_NOT_PERMITTED 错误?
什么是 Android 网页视图?
是什么导致 NET::ERR_CLEARTEXT_NOT_PERMITTED 错误?
概括
经常问的问题

如何修复 NET::ERR_CLEARTEXT_NOT_PERMITTED Android 错误?

现在在本节中,我们将讨论NET::ERR_CLEARTEXT_NOT_PERMITTED错误的故障排除。 为此,如果您是 Android 开发人员,您将需要访问您的 Android 应用程序。

  • 通过修改 Androidmanifest.xml 启用明文流量
  • 使用“network_security_config.Xml”将特定网站列入白名单
  • Nginx 的 HTTP 到 HTTPS 重定向
  • 强制您的 WordPress 网站使用 HTTPS
  • 在现代浏览器中加载网站

1.通过修改Androidmanifest.xml启用明文流量

您可以遵循的第一种故障排除方法是通过修改 androidmanifest.xml 文件来启用明文流量。 每个 Android 应用程序都有一个 Androidmanifest.xml 文件,其中包含 Android 操作系统和其他 Android 平台所需的与应用程序相关的所有信息。

这种特殊方法绕过了 Google 严格的 HTTPS 准则,因此它可以是一个临时解决方案,除非您尝试加载的网站已转移到加密流量。

要启用或允许清除流量,您只需在“<application>”标签中添加“android:usescleartexttraffic”属性并将其值设置为“true”。

要导航和编辑 Androidmanifest.xml 文件,请按照以下简单步骤操作:

第 1 步:首先您需要打开 Android 项目或访问应用程序的 .apk 文件。 您可以通过多种方式打开和编辑 Android 项目,但为了方便起见,请使用 Android Studio。

步骤 2:当您可以在 Android Studio 中打开 Android 项目时,导航位于项目目录结构中的“AndroidManifest.xml”文件。

步骤 3:找到“AndroidManifest.xml”文件后,单击在文本编辑器中将其打开。

第 4 步:现在查找“<application>”标签并添加此属性“android:usescleartexttraffic”

  • 在项目的目录结构中找到“AndroidManifest.xml”文件。
  • 在文本编辑器或 IDE 中打开“AndroidManifest.xml”文件。
  • 在应用程序开始和结束标记中找到并添加以下代码行“ android:usesCleartextTraffic=”true ”。

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:usesCleartextTraffic=”true”
</application>

如果该属性已设置为 False,请将其设置为 True。

步骤5:保存文件后就完成了。


注意:请记住,不强烈推荐上述方法,因为您绕过了安全性并允许不安全的流量进入您的 Android 应用程序的 Web 视图。 这可能会将用户的敏感信息暴露给第三方。 因此,此方法最适合测试或开发目的。


2. 使用“network_security_config.Xml”将特定网站列入白名单

除了您在之前的方法中看到的内容之外。 该解决方案的重点是允许明文流量传输到您信任的特定域。

与前一种方法相比,这种方法非常安全,它只允许您链接安全网页以加载到 Android 应用程序的 webview 上。

您应该记住的一件事是,您只能尝试这两种方法之一,要么为所有网站或应用程序启用明文流量,要么仅允许特定的域或应用程序。
如果安全是您最关心的问题,那么您最好遵循以下方法:

您需要做的第一件事是创建一个network_security_config.Xml 文件。 为此,您必须在 Android Studio 中打开 Android 项目,并按照以下路径 app/src/main/res/xml/network_security_config.xml 转到“res”目录。

现在在 res 目录中创建一个名为“ network_security_config.xml ”的新文件,并向其中添加以下代码行。

<?xml version=”1.0″ encoding=”utf-8″?>
<network-security-config>
<base-config cleartextTrafficPermitted=”true”>
<trust-anchors>
<certificates src=”system” />
</trust-anchors>
</base-config>
<domain-config cleartextTrafficPermitted=”true”>
<domain>insert_name_of_domain</domain>
<domain includeSubdomains=”true”>insert_sub_domain_including_ip_addresses</domain>
</domain-config>
</network-security-config>

这将只允许特定域使用明文。 但是,您可以使用“域包括子域”元素添加多个域或 URL。 但出于安全原因,最好仅添加您信任的域或 URL。

现在,保存“ network_security_config.xml ”文件并更新“AndroidManifest.xml”文件以使其生效。

为此,请打开“ AndroidManifest.xml ”文件,查找应用程序子元素标签,然后在它们之间插入以下代码行。

<?xml version=”1.0″ encoding=”utf-8″?>
<manifest …>
<uses-permission android:name=”android.permission.INTERNET” />
<application

android:networkSecurityConfig=”@xml/network_security_config” …>

</application>
</manifest>

保存并关闭“ AndroidManifest.xml ”文件。 现在您可以在 Webview 中加载 HTTP 网页了。


阅读:修复 NET::ERR_CERT_DATE_INVALID 错误的 12 种最佳方法


3. Nginx 的 HTTP 到 HTTPS 重定向

如果您希望 Nginx Web 服务器不在 WebViw 上显示错误消息“ NET::ERR_CLEARTEXT_NOT_PERMITTED ”。 您可以强制它们使用 HTTPS 并在服务器和客户端之间建立安全连接。

为此,请按照以下步骤操作:

  • 首先,您需要按照以下路径之一打开网站的 Nginx 配置文件:/etc/nginx/conf.d 或 etc/nginx/nginx.conf。
  • 查找显示您网站名称的服务器块并插入以下代码行。

<VirtualHost *:80>
ServerName your_website.com # Replace with your domain name
# Redirect HTTP to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

此代码将启用从 HTTP 到 HTTPS 的重定向。 保存文件以使更改生效。

现在通过以下命令“apachectl configtest”测试配置文件是否正常工作。

如果一切正常,您需要按照以下命令重新启动 Apache 服务器。

# Ubuntu, Debian
sudo service apache2 restart
# CentOS, Fedora
sudo systemctl restart httpd

4. 强制您的 WordPress 网站使用 HTTPS

对于NET::ERR_CLEARTEXT_NOT_PERMITTED错误,您可以遵循的最安全且强烈推荐的方法之一是强制或配置使用 HTTP 而不是 HTTPS 的网站。 甚至 Google 搜索引擎也将安全网站视为 SERP 中的主要排名因素之一。

您可以查看我们关于此重定向技术的专门博客,只需遵循您选择的任何方法即可消除 NET::ERR_CLEARTEXT_NOT_PERMITTED 错误。

  • WordPress 重定向 URL 是如何工作的? 5 种最佳方法
  • WordPress 中 HTTP 到 HTTPS 迁移的完整指南

5. 在现代浏览器中加载网站

如果以上方法都不适合你,或者你懒得遵循以上方法。 只需在您拥有的任何现代浏览器(即 Chrome 或 Firefox)中访问网站或域即可。

然而,如今,如果您尝试在这些浏览器上加载 HTTP 网站,您可能会在地址栏中遇到“连接,非私有”错误消息或“连接不安全标志”。

但这并不意味着您不会遇到NET::ERR_CLEARTEXT_NOT_PERMITTED Samsung error ,但您仍然面临安全风险,并且您在网站上共享的任何数据仍然是明文形式。

因此,您应避免向使用 HTTP 的网站共享或提供任何个人详细信息的敏感信息。 这就是谷歌默认禁用它的主要原因。


阅读:如何修复 NET::ERR_CERT_AUTHORITY_INVALID 错误? (10 个解决方案)


什么是 NET::ERR_CLEARTEXT_NOT_PERMITTED 错误?

NET::ERR_CLEARTEXT_NOT_PERMITTED 是当 Android 应用尝试加载未加密或 HTTP 信息时,Android 系统 Web 视图中显示的错误消息。

您不应将此错误误解为任何技术故障或问题。 令人惊讶的是,当您尝试在任何网络浏览器上加载相同的 URL 或加载相同的信息时。 您可能不会遇到任何错误。

由于 NET::ERR_CLEARTEXT_NOT_PERMITTED 显示在 Android 应用程序内部,因此您也可能会误解 Android 应用程序本身有问题。 但是,您可以轻松绕过或修复此错误。

大多数可用的解决方案适用于 Android 开发人员和 Web 管理员。 但如果您是最终用户,除了在 Web 浏览器上加载 URL 之外,您只能遵循少数故障排除方法。


什么是 Android 网页视图?

如果您是最终用户,您可能不了解 Android Web 视图。 让我们帮助您使其易于理解。

它是 Android 操作系统的一项特殊功能,可帮助您在 Android 应用程序中加载网页,而无需使用外部浏览器。 还允许开发人员创建结合了本机功能和基于 Web 功能的混合应用程序。

除了所有这些功能之外,您会发现 Web 视图的唯一缺点是您无法获得在浏览器中获得的功能数量。

NET::ERR_CLEARTEXT_NOT_PERMITTED 错误特定于使用 Web 视图的 Android 应用程序。 通过浏览器(即 Chrome 或 Firefox)浏览网站时,您不会收到此类错误。

但是,如果您访问不安全的网站或 PHP 构建的网站,您可能会遇到不同类型的错误“您的连接不是私有错误”。


是什么导致 NET::ERR_CLEARTEXT_NOT_PERMITTED 错误?

出现NET::ERR_CLEARTEXT_NOT_PERMITTED错误是因为您的 Android 应用程序尝试通过明文加载未加密的 Web 内容。 但从 Android 版本 9 (Pie) 开始,谷歌已在其默认配置中禁用了这种未加密数据的传输或 HTTP 网页的加载。

现在,此配置仅适用于使用 Android View 的应用程序。 这就是为什么即使在 Android 操作系统中,但在 Android 应用程序中,您也不会在浏览器上遇到此错误的主要原因。

谷歌强制执行此规定的全部目的是为用户创造一个安全的环境,以保护他们的敏感信息免受第三方侵害。 Google 鼓励 Android 开发人员在其 Web 视图中仅提供 HTTPS 兼容的网站,而不是不安全的 HTTP 连接。 因为 HTTPS 具有多种优点,例如:

  • 增强 Android 应用程序的安全性
  • 信任和用户信心
  • 数据的完整性
  • 验证
  • 搜索引擎优化的好处
  • 用户保密等等。

概括

如果您在 Android 的 App Webview 中遇到 NET::ERR_CLEARTEXT_NOT_PERMITTED 错误,则仅意味着该应用正在尝试加载不安全的 HTTP 网站。 出于安全原因,Google 已启用阻止此类可能危及用户敏感信息的不安全网站。

如果您是 Android 开发者或网站管理员,请按照以下方法操作:

  • 通过修改 Androidmanifest.xml 启用明文流量
  • 使用“network_security_config.Xml”将特定网站列入白名单
  • Nginx 的 HTTP 到 HTTPS 重定向
  • 强制您的 WordPress 网站使用 HTTPS
  • 在现代浏览器中加载网站

如果您对这篇文章有任何疑问或建议,请在下面的评论部分告诉我们。


经常问的问题

Err_cleartext_not_permissed 是什么意思?

NET::ERR_CLEARTEXT_NOT_PERMITTED 是当 Android 应用尝试加载未加密或 HTTP 信息时,Android 系统 Web 视图中显示的错误消息。

什么是 Android 上不允许明文的错误?

当您的应用尝试通过不安全的 HTTP 连接(明文)而不是安全的 HTTPS 连接发出网络请求时,Android 上的“不允许明文”错误通常会发生。 此错误是 Android 中引入的一项安全功能,旨在鼓励开发人员使用安全连接通过网络传输数据。

如何修复 err_cleartext_not_permissed Android

如果您是 Android 开发者或网站管理员,请按照以下方法操作:
1.通过修改Androidmanifest.xml启用明文流量
2. 使用“network_security_config.Xml”将特定网站列入白名单
3. Nginx 的 HTTP 到 HTTPS 重定向
4. 强制您的 WordPress 网站使用 HTTPS
5. 在现代浏览器中加载网站