0

Ich richte einen https Server auf meinem Computer und Service sorker auf diesem Server.Wenn ich die Website durch Desktop-Chrome-Browser nach dem Hinzufügen des Zertifikats in der öffnen Browser es öffnet sich gut. Aber wenn ich versuche, es in meinem Android-Gerät zu öffnen, zeigt es den folgenden Fehler.Servicearbeiter android Fehler beim Laden der Ressource: net :: ERR_INSECURE_RESPONSE

Beim Abrufen des Skripts ist ein SSL-Zertifikatfehler aufgetreten.

https://www.aaa.com/swt1.js fehlgeschlagen Ressource laden: net :: ERR_INSECURE_RESPONS E

Fehler beim Service Arbeiter installieren: DOMException: Es konnte keine Serviceworker registrieren: Ein SSL-Zertifikat Fehler aufgetreten ist, wenn die Skript holen.

wo swt1.js ist meine Service-Worker-Datei.

was ist das Problem .. ist es Installation von Zertifikat oder etwas im Zusammenhang mit Service-Mitarbeitern.

+0

Wie lautet die URL, die auf den Service-Mitarbeiter verweist? –

+0

die tatsächliche URL, die ich treffe ist ** https: //www.aaa.com/-ddd-2345**. und im index.html habe ich einen service worker ** swt1.js ** registriert. Wenn ich den Link https://www.aaa.com/swt1.js öffne, wird die Service-Worker-js-Datei angezeigt. aber wenn ich die tatsächliche Seite öffne, wirft es den Fehler –

+0

Und wenn du den Netzreiter auf Chrome öffnest, versucht es, swt1.js über HTTPS herunterzuladen? Können Sie die Anforderungs- und Antwortheader einfügen? –

Antwort

0

Das Problem war in meinem Selbst unterzeichnet openssl certificate.For ein selbst signiertes Zertifikat auf Android mit dem Zertifikat um eine "basic-Constraint CA = true" .In OpenSSL standardmäßig CA = false des Wert haben sollte . also müssen wir diesen Wert auf "wahr" setzen. Unter Datei ist meine openssl.conf.

HOME   = . 
RANDFILE  = $ENV::HOME/.rnd 

#################################################################### 
[ ca ] 
default_ca = CA_default  # The default ca section 

[ CA_default ] 

default_days = 1000   # how long to certify for 
default_crl_days= 30   # how long before next CRL 
default_md = sha256  # use public key default MD 
preserve = no   # keep passed DN ordering 

x509_extensions = ca_extensions  # The extensions to add to the cert 

email_in_dn = no   # Don't concat the email in the DN 
copy_extensions = copy   # Required to copy SANs from CSR to cert 

#################################################################### 
[ req ] 
default_bits  = 4096 
default_keyfile  = cakey.pem 
distinguished_name = ca_distinguished_name 
x509_extensions  = ca_extensions 
string_mask   = utf8only 

#################################################################### 
[ ca_distinguished_name ] 
countryName   = countryName 
countryName_default  = countryName_default 

stateOrProvinceName  = stateOrProvinceName 
stateOrProvinceName_default = stateOrProvinceName_default 

localityName   = localityName 
localityName_default  = localityName_default 

organizationName   = organizationName 
organizationName_default = Test CA, Limited 

organizationalUnitName = organizationalUnitName 
organizationalUnitName_default = Server Research Department 

commonName   = commonName 
commonName_default  = commonName 

emailAddress   = emailAddress 
emailAddress_default  = [email protected] 

#################################################################### 
[ ca_extensions ] 

subjectKeyIdentifier=hash 
authorityKeyIdentifier=keyid:always, issuer 
basicConstraints = critical, CA:true 
keyUsage = keyCertSign, cRLSign 

Wenn Sie kippen Sie dann eine Datei openssl.conf mit dem obigen Inhalt benannt machen finden. und diesen Befehl ausführen

openssl req -x509 -config openssl.cnf -newkey rsa:4096 -sha256 -nodes -out server.pem -outform PEM 

und für die Installation des Zertifikats auf Android habe ich CAdroid App.

Verwandte Themen