วิธีแก้ไขข้อผิดพลาด 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 Error ในการดำเนินการนี้ หากคุณเป็นนักพัฒนาซอฟต์แวร์ Android คุณจะต้องเข้าถึงแอป Android ของคุณ

  • เปิดใช้งานการรับส่งข้อมูลข้อความที่ชัดเจนโดยการแก้ไข Androidmanifest.xml
  • ไวท์ลิสต์เว็บไซต์เฉพาะโดยใช้ “network_security_config.Xml”
  • การเปลี่ยนเส้นทาง HTTP เป็น HTTPS สำหรับ Nginx
  • บังคับให้ไซต์ WordPress ของคุณใช้ HTTPS
  • โหลดเว็บไซต์ในเบราว์เซอร์สมัยใหม่

1. เปิดใช้งานการรับส่งข้อมูลข้อความที่ชัดเจนโดยการแก้ไข Androidmanifest.xml

วิธีแก้ไขปัญหาแรกที่คุณสามารถปฏิบัติตามได้คือการเปิดใช้งานการรับส่งข้อมูลข้อความที่ชัดเจนโดยการแก้ไขไฟล์ androidmanifest.xml แอป Android ทุกแอปมีไฟล์ Androidmanifest.xml ซึ่งมีข้อมูลทั้งหมดที่เกี่ยวข้องกับแอปที่ระบบปฏิบัติการ Android และแพลตฟอร์ม Android อื่น ๆ ต้องการ

วิธีการเฉพาะนี้จะข้ามหลักเกณฑ์ HTTPS ที่เข้มงวดของ Google ดังนั้นจึงอาจเป็นวิธีแก้ปัญหาชั่วคราว เว้นแต่เว็บไซต์ที่คุณพยายามโหลดจะถูกย้ายไปยังการรับส่งข้อมูลที่เข้ารหัส

หากต้องการเปิดใช้งานหรืออนุญาตการรับส่งข้อมูลที่ชัดเจน สิ่งที่คุณต้องทำคือเพิ่มแอตทริบิวต์ "android:usescleartexttraffic" และตั้งค่าเป็น "true" ในแท็ก "<application>"

หากต้องการนำทางและแก้ไขไฟล์ Androidmanifest.xml ให้ทำตามขั้นตอนง่ายๆ ที่ระบุด้านล่าง:

ขั้นตอนที่ 1: ก่อนอื่นคุณต้องเปิดโปรเจ็กต์ Android ของคุณหรือเข้าถึงไฟล์ .apk ของแอป คุณสามารถเปิดและแก้ไขโปรเจ็กต์ Android ได้หลายวิธี แต่ให้ใช้ Android Studio เพื่อความสะดวกของคุณ

ขั้นตอนที่ 2: เมื่อคุณสามารถเปิดโปรเจ็กต์ Android ใน Android Studio ได้ ให้ไปที่ไฟล์ “AndroidManifest.xml” ที่อยู่ในโครงสร้างไดเร็กทอรีของโปรเจ็กต์ของคุณ

ขั้นตอนที่ 3: เมื่อคุณพบไฟล์ “AndroidManifest.xml” ให้คลิกเพื่อเปิดในโปรแกรมแก้ไขข้อความ

ขั้นตอนที่ 4: ตอนนี้มองหาแท็ก “<application>” และเพิ่มแอตทริบิวต์นี้ “android:usescleartexttraffic”

  • ค้นหาไฟล์ “AndroidManifest.xml” ภายในโครงสร้างไดเรกทอรีของโปรเจ็กต์ของคุณ
  • เปิดไฟล์ “AndroidManifest.xml” ในโปรแกรมแก้ไขข้อความหรือภายใน IDE
  • ค้นหาและเพิ่มบรรทัดโค้ดต่อไปนี้ “ 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 ของคุณ ซึ่งอาจเปิดเผยข้อมูลที่ละเอียดอ่อนของผู้ใช้ต่อบุคคลที่สาม ดังนั้นวิธีนี้จึงเหมาะสมที่สุดสำหรับการทดสอบหรือการพัฒนา


2. ไวท์ลิสต์เว็บไซต์เฉพาะโดยใช้ “network_security_config.Xml”

นอกเหนือจากที่เห็นในวิธีการก่อนหน้านี้แล้ว โซลูชันนี้มุ่งเน้นไปที่การอนุญาตการรับส่งข้อมูลข้อความที่ชัดเจนไปยังโดเมนเฉพาะที่คุณเชื่อถือ

วิธีนี้ค่อนข้างปลอดภัยเมื่อเทียบกับวิธีก่อนหน้า และอนุญาตให้คุณลิงก์หน้าเว็บที่ปลอดภัยเพื่อโหลดบน WebView ของแอป Android เท่านั้น

สิ่งหนึ่งที่คุณควรจำไว้ก็คือ คุณสามารถลองใช้วิธีใดวิธีหนึ่งจากสองวิธีนี้เท่านั้น เปิดใช้งานการรับส่งข้อมูลข้อความที่ชัดเจนสำหรับเว็บไซต์หรือแอปทั้งหมด หรืออนุญาตเฉพาะโดเมนหรือแอปที่ระบุเท่านั้น
หากความปลอดภัยเป็นปัญหาใหญ่ที่สุดของคุณ คุณควรปฏิบัติตามวิธีการที่ระบุไว้ด้านล่างจะดีกว่า:

สิ่งแรกที่คุณต้องทำคือสร้างไฟล์ network_security_config.Xml สำหรับสิ่งนี้ คุณต้องเปิดโปรเจ็กต์ Android ของคุณใน Android Studio และไปที่ไดเร็กทอรี "res" โดยทำตามพาธนี้ app/src/main/res/xml/network_security_config.xml

ตอนนี้ให้สร้างไฟล์ใหม่ชื่อ " network_security_config.xml " ภายในไดเร็กทอรี res และเพิ่มบรรทัดโค้ดต่อไปนี้ลงไป

<?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 ” เพียงเท่านี้คุณก็สามารถโหลดหน้าเว็บ HTTP ใน Webview ได้


อ่าน: 12 วิธีที่ดีที่สุดในการแก้ไขข้อผิดพลาด NET::ERR_CERT_DATE_INVALID


3. การเปลี่ยนเส้นทาง HTTP เป็น HTTPS สำหรับ Nginx

หากคุณต้องการให้เว็บเซิร์ฟเวอร์ Nginx ไม่แสดงข้อความแสดงข้อผิดพลาด “ NET::ERR_CLEARTEXT_NOT_PERMITTED ” บน WebViw คุณสามารถบังคับให้พวกเขาใช้ 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

  • URL เปลี่ยนเส้นทางของ WordPress ทำงานอย่างไร 5 วิธีที่ดีที่สุด
  • คู่มือฉบับสมบูรณ์เกี่ยวกับการโยกย้าย HTTP เป็น HTTPS ใน WordPress

5. โหลดเว็บไซต์ในเบราว์เซอร์สมัยใหม่

หากไม่มีวิธีการข้างต้นที่เหมาะกับคุณ หรือคุณรู้สึกขี้เกียจพอที่จะปฏิบัติตามวิธีการข้างต้น เพียงเข้าถึงเว็บไซต์หรือโดเมนในเบราว์เซอร์สมัยใหม่ที่คุณมี เช่น Chrome หรือ Firefox

อย่างไรก็ตาม ในปัจจุบัน หากคุณพยายามโหลดเว็บไซต์ HTTP บนเบราว์เซอร์เหล่านี้ คุณอาจพบข้อความแสดงข้อผิดพลาด "การเชื่อมต่อ ไม่เป็นส่วนตัว" หรือ "สัญญาณการเชื่อมต่อไม่ปลอดภัย" ที่แถบที่อยู่

แต่ไม่ได้หมายความว่าคุณจะปราศจาก NET::ERR_CLEARTEXT_NOT_PERMITTED Samsung error แต่ถึงกระนั้น คุณยังมีความเสี่ยงด้านความปลอดภัย และข้อมูลใดก็ตามที่คุณแบ่งปันบนเว็บไซต์ยังคงเป็นข้อความที่ชัดเจน

ดังนั้นคุณควรหลีกเลี่ยงการแบ่งปันหรือให้ข้อมูลที่ละเอียดอ่อนกับรายละเอียดส่วนบุคคลไปยังเว็บไซต์ที่ใช้ HTTP นี่คือสาเหตุหลักที่ทำให้ Google ปิดการใช้งานโดยค่าเริ่มต้น


อ่าน: วิธีแก้ไขข้อผิดพลาด NET::ERR_CERT_AUTHORITY_INVALID (10 โซลูชั่น)


ข้อผิดพลาด NET::ERR_CLEARTEXT_NOT_PERMITTED คืออะไร

NET::ERR_CLEARTEXT_NOT_PERMITTED เป็นข้อความแสดงข้อผิดพลาดที่แสดงใน Android System Webview เมื่อแอป Android พยายามโหลดข้อมูลที่ไม่ได้เข้ารหัสหรือ HTTP

คุณไม่ควรเข้าใจผิดเกี่ยวกับข้อผิดพลาดนี้เนื่องจากข้อบกพร่องทางเทคนิคหรือปัญหาใดๆ น่าประหลาดใจเมื่อคุณพยายามโหลด URL เดียวกันหรือโหลดข้อมูลเดียวกันบนเว็บเบราว์เซอร์ใดๆ คุณอาจไม่พบข้อผิดพลาดใดๆ

เนื่องจาก NET::ERR_CLEARTEXT_NOT_PERMITTED ปรากฏขึ้นภายในแอป Android คุณอาจเข้าใจผิดว่ามีบางอย่างผิดปกติกับแอป Android เอง อย่างไรก็ตาม คุณสามารถข้ามหรือแก้ไขข้อผิดพลาดนี้ได้อย่างง่ายดาย

โซลูชันส่วนใหญ่ที่มีให้บริการมีไว้สำหรับนักพัฒนา Android และผู้ดูแลเว็บ แต่ถ้าคุณเป็นผู้ใช้ คุณสามารถปฏิบัติตามวิธีการแก้ไขปัญหาได้เพียงไม่กี่วิธี นอกเหนือจากการโหลด URL บนเว็บเบราว์เซอร์


มุมมองเว็บ Android คืออะไร

หากคุณเป็นผู้ใช้ปลายทาง คุณอาจไม่มีความรู้เกี่ยวกับ Android Web view ให้เราช่วยให้คุณเข้าใจง่าย

เป็นคุณสมบัติพิเศษของระบบปฏิบัติการ Android ที่ช่วยให้คุณโหลดหน้าเว็บภายในแอพ Android โดยไม่ต้องใช้เบราว์เซอร์ภายนอก ยังช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันไฮบริดที่ผสมผสานคุณสมบัติทั้งแบบเนทีฟและแบบเว็บเข้าด้วยกัน

นอกเหนือจากคุณสมบัติเหล่านี้แล้ว ข้อเสียเพียงอย่างเดียวของมุมมองเว็บที่คุณจะพบคือ คุณจะไม่ได้รับคุณสมบัติมากมายที่คุณได้รับในเบราว์เซอร์

ข้อผิดพลาด NET::ERR_CLEARTEXT_NOT_PERMITTED เกิดขึ้นเฉพาะกับแอป Android ที่ใช้ Web View คุณจะไม่ได้รับข้อผิดพลาดดังกล่าวขณะเรียกดูเว็บไซต์ผ่านเบราว์เซอร์ เช่น Chrome หรือ Firefox

อย่างไรก็ตาม หากคุณเยี่ยมชมเว็บไซต์ที่ไม่ปลอดภัยหรือเว็บไซต์ที่สร้างด้วย PHP คุณอาจพบข้อผิดพลาดประเภทอื่น ” ข้อผิดพลาดการเชื่อมต่อของคุณไม่ใช่ส่วนตัว”


อะไรทำให้เกิดข้อผิดพลาด NET::ERR_CLEARTEXT_NOT_PERMITTED

ข้อผิดพลาด NET::ERR_CLEARTEXT_NOT_PERMITTED ปรากฏขึ้นเนื่องจากแอป Android ของคุณพยายามโหลดเนื้อหาเว็บที่ไม่ได้เข้ารหัสผ่านข้อความที่ชัดเจน แต่จากการเริ่มต้น Android เวอร์ชัน 9 (พาย) Google ได้ปิดการใช้งานการส่งข้อมูลที่ไม่ได้เข้ารหัสหรือการโหลดหน้าเว็บ HTTP ในการกำหนดค่าเริ่มต้น

ขณะนี้ การกำหนดค่านี้ใช้ได้กับแอปพลิเคชันที่ใช้ Android View เท่านั้น นี่คือสาเหตุหลักว่าทำไมคุณจะไม่พบข้อผิดพลาดนี้บนเบราว์เซอร์แม้แต่ในระบบปฏิบัติการ Android แต่ในแอป Android

วัตถุประสงค์ทั้งหมดของ Google ในการบังคับใช้นี้คือการสร้างสภาพแวดล้อมที่ปลอดภัยสำหรับผู้ใช้ในการปกป้องข้อมูลที่ละเอียดอ่อนของตนจากบุคคลที่สาม Google สนับสนุนให้นักพัฒนา Android จัดเตรียมเฉพาะเว็บไซต์ที่เข้ากันได้กับ HTTPS ในมุมมองเว็บของตน แทนที่จะเป็นการเชื่อมต่อ HTTP ที่ไม่ปลอดภัย เนื่องจาก HTTPS มีข้อดีหลายประการ เช่น

  • การรักษาความปลอดภัยขั้นสูงสำหรับแอพ Android
  • ความไว้วางใจและความมั่นใจของผู้ใช้
  • ความสมบูรณ์ของข้อมูล
  • การรับรองความถูกต้อง
  • ประโยชน์ด้าน SEO
  • การรักษาความลับสำหรับผู้ใช้และอื่นๆ อีกมากมาย

สรุป

หากคุณพบข้อผิดพลาด NET::ERR_CLEARTEXT_NOT_PERMITTED ใน App Webview ของ Android นั่นหมายความว่าแอปกำลังพยายามโหลดเว็บไซต์ HTTP ที่ไม่ปลอดภัย ด้วยเหตุผลด้านความปลอดภัย Google ได้เปิดใช้งานการบล็อกเว็บไซต์ที่ไม่ปลอดภัยดังกล่าวซึ่งอาจเป็นอันตรายต่อข้อมูลที่ละเอียดอ่อนของผู้ใช้

หากคุณเป็นนักพัฒนา Android หรือผู้ดูแลเว็บไซต์ ให้ปฏิบัติตามวิธีการด้านล่าง:

  • เปิดใช้งานการรับส่งข้อมูลข้อความที่ชัดเจนโดยการแก้ไข Androidmanifest.xml
  • ไวท์ลิสต์เว็บไซต์เฉพาะโดยใช้ “network_security_config.Xml”
  • การเปลี่ยนเส้นทาง HTTP เป็น HTTPS สำหรับ Nginx
  • บังคับให้ไซต์ WordPress ของคุณใช้ HTTPS
  • โหลดเว็บไซต์ในเบราว์เซอร์สมัยใหม่

หากคุณมีข้อสงสัยหรือข้อเสนอแนะเกี่ยวกับโพสต์นี้ โปรดแจ้งให้เราทราบในส่วนความคิดเห็นด้านล่าง


คำถามที่พบบ่อย

Err_cleartext_not_permission หมายถึงอะไร

NET::ERR_CLEARTEXT_NOT_PERMITTED เป็นข้อความแสดงข้อผิดพลาดที่แสดงใน Android System Webview เมื่อแอป Android พยายามโหลดข้อมูลที่ไม่ได้เข้ารหัสหรือ HTTP

Cleartext ไม่ได้รับอนุญาตบน Android คืออะไร

ข้อผิดพลาด “ไม่อนุญาตให้ใช้ Cleartext” บน Android มักเกิดขึ้นเมื่อแอปของคุณพยายามส่งคำขอเครือข่ายผ่านการเชื่อมต่อ HTTP ที่ไม่ปลอดภัย (ข้อความเคลียร์) แทนที่จะเป็นการเชื่อมต่อ HTTPS ที่ปลอดภัย ข้อผิดพลาดนี้เป็นคุณลักษณะด้านความปลอดภัยที่นำมาใช้ใน Android เพื่อสนับสนุนให้นักพัฒนาใช้การเชื่อมต่อที่ปลอดภัยในการส่งข้อมูลผ่านเครือข่าย

วิธีแก้ไข err_cleartext_not_permission Android

หากคุณเป็นนักพัฒนา Android หรือผู้ดูแลเว็บไซต์ ให้ปฏิบัติตามวิธีการด้านล่าง:
1. เปิดใช้งานการรับส่งข้อมูลข้อความที่ชัดเจนโดยการแก้ไข Androidmanifest.xml
2. ไวท์ลิสต์เว็บไซต์เฉพาะโดยใช้ “network_security_config.Xml”
3. การเปลี่ยนเส้นทาง HTTP เป็น HTTPS สำหรับ Nginx
4. บังคับให้ไซต์ WordPress ของคุณใช้ HTTPS
5. โหลดเว็บไซต์ในเบราว์เซอร์สมัยใหม่