Hvis du bruger Android, kan du støde på fejlen NET::ERR_CLEARTEXT_NOT_PERMITTED, når du forsøger at få adgang til et websted eller en webapp. Denne fejl blokerer dig for adgang til webstedet, og den er unik for dette operativsystem (OS).

Meddelelsen NET::ERR_CLEARTEXT_NOT_PERMITTED vises, fordi webstedet bruger “cleartext” eller ukrypterede oplysninger. Heldigvis er der måder at omgå denne fejl på, uanset om du er Android-udvikler eller ansvarlig for det pågældende websted.

I denne artikel introducerer vi dig til begrebet Android Webview og diskuterer, hvad der forårsager NET::ERR_CLEARTEXT_NOT_PERMITTED-fejlen. Derefter viser vi dig tre måder at fejlfinde fejlen på. Lad os komme i gang!

Hvad er Android Webview?

Webview er en funktion i Android OS, der gør det muligt for apps at vise websider uden brug af en browser. Denne funktion er almindelig i webapps, som i bund og grund er indpakninger, der gør det muligt at installere websteder på din telefon som apps:

Android Webview er ikke designet til at tilbyde en komplet browseroplevelse
Android Webview

Selv om Webview gør det muligt at få adgang til websteder via apps, får du ikke den samme mængde funktioner som i en browser. Hvis du navigerer på nettet, vil en browser som Chrome altid give en bedre oplevelse end Webview.

Fejlen NET::ERR_CLEARTEXT_NOT_PERMITTED er unik for apps, der bruger Webview i Android OS. Du vil ikke støde på denne fejl, når du bruger en browser som Chrome. Hvis du forsøger at få adgang til et PHP-bygget websted via HTTP i stedet for en sikker kanal med en almindelig browser, kan du støde på andre fejl, f.eks. advarsler om “Not Secure” (ikke sikker).

Hvad betyder NET::ERR_CLEARTEXT_NOT_PERMITTED?

Hvis du konfigurerer Webview til at indlæse en side, der bruger HTTP eller indeholder andre typer ukrypterede oplysninger, returnerer appen følgende fejl (vi bruger et Android-appudviklingsværktøj til at vise dig den):

Fejlen "NET::ERR_CLEARTEXT_NOT_PERMITTED" forhindrer dig i at få adgang til et usikkert websted
Fejlen “NET::ERR_CLEARTEXT_NOT_PERMITTED” (NET::ERR_CLEARTEXT_NOT_PERMITTED)

Fejlen betyder ikke, at webstedet er utilgængeligt eller lider af tekniske problemer. Hvis du prøver at få adgang til den samme URL-adresse med en anden browser, vil du måske ikke støde på nogen form for fejl. Hvis der er tale om en HTTP-URL, kan du højst se et ikon, der angiver, at du besøger et usikkert websted.

Da fejlen kun vises inde i Android-apps, kan det få brugerne til at tro, at der er et problem med selve appen. Der er dog måder at omgå og fejlfinde denne fejl på, uanset om du er appudvikler eller ansvarlig for det websted, der viser den. Hvis du er slutbruger, er der ikke meget andet at gøre end at forsøge at få adgang til webstedet ved hjælp af en browser.

Hvad er årsagen til meddelelsen NET::ERR_CLEARTEXT_NOT_PERMITTED?

Som standard forhindrer Android apps i at sende ukrypterede data eller “clear text” ved et uheld Dette har været standardkonfigurationen for apps siden Android 9.0.

Denne konfiguration gælder for apps, der bruger Android Webview. Det er derfor, at fejlen NET::ERR_CLEARTEXT_NOT_PERMITTED kun vises i apps og ikke i browsere i Android OS.

Da hovedårsagen bag fejlen er ukrypterede oplysninger, er der forskellige måder at fejlfinde den på. Hvis du er app-udvikler, kan du ændre konfigurationsfiler, der aktiverer understøttelse af klartekst.

Alternativt kan du, hvis du er ejeren af webstedet, konfigurere alle sider på webstedet til at indlæse over HTTPS. På den måde behøver brugerne ikke at håndtere ukrypterede kanaler, og Android-apps, der peger mod dit websted, returnerer ikke fejlen NET::ERR_CLEARTEXT_NOT_PERMITTED.

Sådan løser du fejlen “NET::ERR_CLEARTEXT_NOT_PERMITTED” (3 måder)

I dette afsnit viser vi dig, hvordan du kan løse fejlen NET::ERR_CLEARTEXT_NOT_PERMITTED-fejlen direkte på Android og fra dit websted. Du skal have adgang til en Android-enhed for at fejlfinde fejlen og for at kontrollere, om den fortsætter.

1. Ændre AndroidManifest.xml

Alle Android-programmer indeholder en AndroidManifest.xml fil. Filen indeholder oplysninger om appen, som kræves af styresystemet, Google Play Store og nogle udviklingsværktøjer.

Filen AndroidManifest.xml indeholder også oplysninger om nøgletilladelser og om, hvorvidt appen kan indlæse klartekst via Webview eller ej. Husk på, at Google fraråder at tillade klartekst på grund af sikkerhedsproblemer, så denne fejlfindingsmetode bør være en midlertidig løsning, indtil det websted, du indlæser, skifter til krypteret trafik.

For at finde og redigere AndroidManifest.xml (hvilket svarer til at redigere en HTML-fil) skal du have adgang til appens .apk-fil eller projektkilde. Der er flere måder, hvorpå du kan få adgang til en app’s projektkildefiler. Den anbefalede metode er at bruge Android Studio, som er det officielle integrerede udviklingsmiljø (IDE) for Android-udviklere:

Android Studio tilbyder den nemmeste måde at få adgang til Android-appfiler
Android Studio

Når du åbner et projekt i Android Studio, kan du se alle dets relaterede filer på tværs af standardiserede mapper. Filen AndroidManifest.xml vil være placeret i manifests-mappen:

Du kan finde AndroidManifest.xml i manifestbiblioteket
AndroidManifest.xml i manifests-mappen

Åbn filen, og søg efter underelementetapplication, som skal se således ud:

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

</application>

Variablerne i underelementet program kan ændre sig, så du skal kigge efter de indledende og afsluttende programtags for at identificere dem. Når du har fundet tag’sene, skal du indsætte følgende kodelinje:

android:usesCleartextTraffic=”true”

Hvis der allerede er en usesCleartexTraffic-variabel, der er sat til false, skal du ændre den til true. Når du er færdig, skal du gemme ændringerne i AndroidManifest.xml og lukke filen, hvorefter du gemmer ændringerne i projektet.

2. Tillad domænet ved hjælp af network_security_config.xml

Fra Android 7.0 og frem giver Google programmer mulighed for at bruge en netværkssikkerhedskonfigurationsfil til at indstille tilladelser til bestemte domæner og apps. Kort fortalt kan du bruge network_security_config.xml til at omgå cleartext-begrænsninger for et eller flere domæner.

Denne fremgangsmåde er mere sikker end at aktivere cleartext-understøttelse i hele appen (som vist i den foregående metode). Den mest sikre tilgang ville dog være kun at linke til sikre sider ved hjælp af Webview.

Ideelt set vil du kun bruge en af disse to fremgangsmåder, da du ved at aktivere klartekstunderstøttelse i hele appen ikke behøver at tillade bestemte domæner på listen. Hvis du ønsker at vælge den mere sikre tilgang, skal du følge denne metode.

Lad os med det i baghovedet gå videre og oprette en network_security_config.xml-fil til din app. For at gøre dette skal du åbne app-projektet ved hjælp af Android Studio (som beskrevet i det foregående afsnit) og navigere til res-mappen.

Denne mappe indeholder alle ikke-kodefiler til et app-projekt, herunder XML-filer (bortset fra AndroidManifest.xml), bitmap-billeder og meget mere. Opret en fil kaldet network_security_config.xml-filen i res-mappen. Åbn derefter filen, og tilføj følgende kode:

<?xml version="1.0" encoding="utf-8"?>

<network-security-config>

<domain-config cleartextTrafficPermitted="true">

<domain includeSubdomains="true">yourwebsite.com</domain>

</domain-config>

</network-security-config>

Denne kode angiver, at kun ét domæne kan bruge cleartext. Du kan tilføje yderligere “domain includeSubdomains“-elementer for at tillade yderligere URL’er. Af sikkerhedsmæssige årsager anbefaler vi dog, at du kun begrænser denne konfiguration til de domæner, der har et strengt behov for den.

Gem ændringerne i network_security_config.xml, og vend tilbage til manifests-mappen. For at konfigurationen af netværkssikkerheden kan fungere, skal du redigere AndroidManifest.xml igen.

Åbn filen, og kig efter underelementet application. Tilføj derefter følgende kodelinje inden for dens tags:

android:networkSecurityConfig="@xml/network_security_config"

Luk AndroidManifest.xml efter at have gemt ændringerne i filen, og det er det hele. Din app bør nu aktivere cleartext for det domæne, du har angivet.

3. Tving dit websted til at bruge HTTPS

Den mest sikre løsning på fejlen NET::ERR_CLEARTEXT_NOT_PERMITTED er at konfigurere det websted, der returnerer fejlmeddelelsen, til at bruge HTTPS. På denne måde er alle data, der sendes til og fra webstedet, krypteret.

På det moderne web er der ingen grund til ikke at bruge HTTPS til dit websted. Du kan få et SSL-certifikat (Secure Sockets Layer) gratis og konfigurere det på dit websted på få minutter. Faktisk kan nogle webhosts (f.eks. Kinsta) tage sig af hele processen for dig.

Når du tilmelder dig et Kinsta-hostingabonnement, konfigurerer vi automatisk et SSL-certifikat til dit websted. Desuden kan du tvinge dit websted til at indlæse over HTTPS fra dit MyKinsta-dashboard.

For at gøre dette skal du gå ind på MyKinsta, vælge et websted og gå til fanen Værktøjer. Kig efter den indstilling, der hedder Force HTTPS , og klik på Enable (Aktiver):

MyKinsta giver dig mulighed for at tvinge HTTPS-trafik med kun et klik
Tving HTTPS i MyKinsta med et enkelt klik

Hvis du ikke bruger Kinsta, kan du enten ændre din WordPress .htaccess-fil til at omdirigere HTTP-trafik gennem HTTPS eller bruge et plugin, der gør arbejdet for dig. Hvis du vælger sidstnævnte, anbefaler vi, at du bruger Really Simple SSL-plugin.

Du kan tjekke denne artikel for at få instruktioner om, hvordan du omdirigerer HTTP til HTTPSNginx og Apache og ved hjælp af det pågældende plugin. Når du har konfigureret dit websted til at bruge HTTPS, bør du ikke længere støde på fejlen NET::ERR_CLEARTEXT_NOT_PERMITTED længere, når du bruger Android Webview til at navigere på det.

Opsumering

Hvis du støder på fejlen NET::ERR_CLEARTEXT_NOT_PERMITTED i Android, forsøger den app, du bruger, at få adgang til en webside, der ønsker at overføre clear text eller usikrede oplysninger. Android blokerer apps for dette for at undgå at kompromittere brugerdata.

Hvis du er en almindelig bruger, skal du bruge en browser til at besøge det websted, der returnerer fejlen. Men hvis du er udvikleren bag appen eller webstedet, kan du prøve at ændre AndroidManifest.xml, tillade domænet via network_security_config.xml og tvinge dit websted til at bruge HTTPS.

Kinsta-brugere er meget mindre tilbøjelige til at løbe ind i NET::ERR_CLEARTEXT_NOT_PERMITTED-fejlen for deres egne websteder. Det skyldes, at vi automatisk opretter SSL-certifikater til nye websteder og gør det muligt for dig at omdirigere trafik via HTTPS med et par enkle klik. Udforsk vores webhostingabonnementer eller vores applikationshostingabonnementer for at finde det, der passer bedst til dig!