service worker android无法加载资源:net :: ERR_INSECURE_RESPONSE

时间:2016-11-25 08:12:03

标签: android https ssl-certificate service-worker progressive-web-apps

我在我的计算机和服务sorker上设置了 https 服务器。当我在浏览器中添加证书后通过桌面Chrome浏览器打开网站时,它打开正常。但是当我尝试在我的Android设备中打开它,它显示以下错误。

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

https://www.aaa.com/swt1.js无法加载资源:net :: ERR_INSECURE_RESPONS E

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

其中 swt1.js 是我的服务工作者文件。

问题是什么..是安装证书还是与服务工作者有关的东西。

1 个答案:

答案 0 :(得分:0)

问题出在我自己签署的openssl证书中。要在android上使用自签名证书,证书应该有一个“基本约束 CA =真”。默认情况下,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 app。