如何在没有可信 SSL 证书的情况下在 Intranet 中运行 PWA?

Posted

技术标签:

【中文标题】如何在没有可信 SSL 证书的情况下在 Intranet 中运行 PWA?【英文标题】:How to run a PWA in a Intranet without a trusted SSL certificate? 【发布时间】:2019-09-04 09:25:45 【问题描述】:

我正在设置一个 Intranet 环境来运行 PWA 以用于未来的商业目的。但是我遇到了一个关于 SSL 证书的问题。

在我的计划中:

一切都在本地网络上(可能无法访问互联网),其中有一个专用服务器(我使用的是 ubuntu 服务器), 用户使用计算机或手机访问主页,并在其设备上安装 PWA。

PWA 需要 HTTPS 才能工作,我可以自签名证书(我这样做是为了测试),但这不是实现应用程序的解决方案,因为它会在每个应用程序上生成 安全错误用这个方法在地球上浏览器。

将证书导入浏览器对我来说不是一个解决方案,因为在每个用户浏览器上导入证书很麻烦(它对用户不友好),而且在没有 root 的 android 中也是不可能的。

我想创建一个需要最少高级用户帮助才能工作的 PWA,因此导入证书和解决方法是不行的。

是否可以在没有此证书问题的情况下运行 PWA,或者我现在应该放弃它并开始一个标准的 Web 应用程序?

【问题讨论】:

Let's Encrypt 存在。用它。停止自签名证书并期望人们只需点击即可忽略重要的安全警告,这会养成超级坏习惯。期望人们安装一些粗略的自签名证书同样不是一个解决方案。 Let's Encrypt 确实需要连接,但如果 DNS 名称匹配,您可以在一个位置生成证书并将其部署到另一个受防火墙保护的位置。 这不起作用,因为服务器没有公共域名,我在同一网络上的服务器上运行它。我目前仅通过 IP 访问它。 您可以设置本地 DNS 以使其正常工作。在这里通过IP访问是个问题,你需要一个名字。 你找到解决方案了吗@Viníciuspereira ? 我有完全相同的情况,需要在员工移动设备上运行 pwa,服务器托管在局域网上。如果不在工作场所附近,客户不想让员工使用应用程序。 【参考方案1】:

HTTPS 是运行 PWA 的核心要求。 证书不再那么昂贵。 只需将其计入您的年度托管费用即可。 在您使用证书运行 HTTPS 之前,也许您可​​以使用 https://glitch.com/ 之类的东西进行免费测试

【讨论】:

我自己将应用程序托管在与我在同一网络上的服务器上,所以我没有公共域名,我目前仅通过 IP 访问它。 好的。如果需要,您仍然可以免费使用 Glitch 在 HTTPS 上测试您的 PWA 代码。【参考方案2】:

PWA 需要托管在安全服务器上,但它可以与非安全服务进行通信。一种可能的解决方法是:

将 PWA 托管在安全的站点上,如果有的话应该不会花费太多(例如 AWS) 安全站点基本上只用于托管应用程序和更新 在 PWA 内与 LAN 上的非安全服务通信

【讨论】:

以上是关于如何在没有可信 SSL 证书的情况下在 Intranet 中运行 PWA?的主要内容,如果未能解决你的问题,请参考以下文章

powershell 此代码块可用于允许Invoke-WebRequest使用没有可信证书颁发机构的SSL地址

服务器如何更新ssl证书

如何在没有开发人员证书的情况下在 Xcode 中归档我的项目?

如何申请免费SSL证书?

中科三方:浏览器是如何检查SSL证书正常工作的?

求助delphi实现ssl验证客户端证书