服务工作者 android 加载资源失败:net::ERR_INSECURE_RESPONSE

service worker android Failed to load resource: net::ERR_INSECURE_RESPONSE

我在我的机器上设置了一个 https 服务器并在上面设置了服务 sorker server.When 我在添加后通过桌面 chrome 浏览器打开网站浏览器中的证书它打开 fine.But 当我尝试在我的 android 设备中打开它时它显示以下错误。

获取脚本时发生 SSL 证书错误。

https://www.aaa.com/swt1.js 加载资源失败:net::ERR_INSECURE_RESPONSE

安装 Service Worker 时出错:DOMException:无法注册 ServiceWorker:获取脚本时发生 SSL 证书错误。

其中 swt1.js 是我的 service worker 文件。

有什么问题..是安装证书还是与服务人员相关的问题。

问题出在我的自签名 openssl certificate.For 上,在 android 上使用自签名证书,证书应该有一个 "basic-constraint CA=true"。在 openssl 中,默认值是 CA=假。所以我们需要将该值更改为 true。 下面的文件是我的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        = test@example.com

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

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

如果找不到您的文件,请使用上述内容创建一个名为 openssl.conf 的文件。 运行 这个命令

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

为了在 android 上安装证书,我使用了 CAdroid 应用。