服务工作者 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 应用。
我在我的机器上设置了一个 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 应用。