0

我正在为工作构建一个渐进式 Web 应用程序,但由于 SSL 要求,我无法在本地对其进行测试。

通常,这很简单,因为如果您使用 localhost(我相信即使没有 SSL),Chrome 也允许这样做。但是,我没有使用“本地主机”。我们有一个内部 Web 应用程序,其 URL 如下:“website.company.com”。登录此站点时,会为该子域 (company.com) 添加身份验证 cookie。为了让我的本地网站使用这些相同的 cookie,我在主机文件 (Windows) 中添加了一个条目,例如“127.0.0.1 my-local-site.company.com”。这样,当我访问我的本地站点 (my-local-site.company.com) 时,我拥有所有身份验证 cookie,并且可以对我真正部署的站点进行 CORS 调用。

除了服务工作人员现在无法工作之外,这非常有效,因为“ https://my-local-site.company.com ”的证书无效并且服务工作人员没有加载。我尝试创建一个自签名证书并将其添加到受信任的证书中,但 Chrome 仍然说该站点不受信任,并且服务工作者和 manifest.json 文件不加载。

我的问题是有人知道如何:1. 使 PWA 在没有有效证书的情况下完全在本地工作......或 2. 让 chrome 识别我的自签名证书。

注意:我确实在 Chrome 启动中找到了一个标志,它允许服务人员在没有有效证书的情况下运行,这很好……但是,它仍然没有加载我的 manifest.json 文件。这是一个问题,因为我真的想(向我的团队)演示 PWA 很酷的添加到主屏幕功能。

4

1 回答 1

0

解决方案是重新创建证书并确保它具有主题替代名称。我将下面的代码放入批处理文件并运行它。我必须先安装openssl。创建证书后,我将 .crt 文件添加到 Trusted Authorities 证书中。然后我在我的 webpack 开发服务器配置中引用了 .crt 和 .key 文件。

REM PLEASE UPDATE THE FOLLOWING VARIABLES FOR YOUR NEEDS.
SET HOSTNAME=local-site.company
SET DOT=com
SET COUNTRY=US
SET STATE=WA
SET CITY=Seattle
SET ORGANIZATION=Company
SET ORGANIZATION_UNIT=IT
SET EMAIL=myemail@email.com

(
echo [req]
echo default_bits = 2048
echo prompt = no
echo default_md = sha256
echo x509_extensions = v3_req
echo distinguished_name = dn
echo:
echo [dn]
echo C = %COUNTRY%
echo ST = %STATE%
echo L = %CITY%
echo O = %ORGANIZATION%
echo OU = %ORGANIZATION_UNIT%
echo emailAddress = %EMAIL%
echo CN = %HOSTNAME%.%DOT%
echo:
echo [v3_req]
echo subjectAltName = @alt_names
echo:
echo [alt_names]
echo DNS.1 = *.%HOSTNAME%.%DOT%
echo DNS.2 = %HOSTNAME%.%DOT%
)>%HOSTNAME%.cnf

C:\"Program Files (x86)"\GnuWin32\bin\openssl req -new -x509 -newkey rsa:2048 -sha256 -nodes -keyout %HOSTNAME%.key -days 3560 -out %HOSTNAME%.crt -config %HOSTNAME%.cnf
pause
于 2017-12-10T06:18:59.110 回答