我在我的计算机和服务sorker上设置了 https 服务器。当我在浏览器中添加证书后通过桌面Chrome浏览器打开网站时,它打开正常。但是当我尝试在我的Android设备中打开它,它显示以下错误。
获取脚本时发生SSL证书错误。
https://www.aaa.com/swt1.js无法加载资源:net :: ERR_INSECURE_RESPONS E
安装Service Worker时出错:DOMException:无法注册ServiceWorker:获取脚本时出现SSL证书错误。
其中 swt1.js 是我的服务工作者文件。
问题是什么..是安装证书还是与服务工作者有关的东西。
答案 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。