2

在不安全的环境中不支持 Web 的许多功能。

例如,如果没有运行API, crypto.subtleAPI 就是.undefinedhttps

我一直在开发localhost,这里有一个例外,上下文仍然被认为是安全的,并且一切正常。

但是,现在我正在我的移动设备上进行测试,这意味着我现在正在192.168.1.xxx从我的计算机连接到。因此,它不再是一个安全的上下文,并且我无法访问我需要的某些 API。

我怎样才能解决这个问题?如何使用计算机的 IP 地址在移动设备上测试我的应用程序,并访问仅在安全上下文中可用的 API?

4

2 回答 2

1

您可以为您的开发服务器创建一个自签名证书,然后显式绕过 SSL 错误:

在此处输入图像描述

于 2020-06-08T10:47:09.983 回答
0

向公共后缀列表中的动态 DNS 提供商注册动态 DNS 服务,并支持TXT通过 API 更新记录。然后使用 ACME 客户端软件(例如 Certbot 或 Dehydrad)从 Let's Encrypt 获取该服务器的证书。

  • 出现在公共后缀列表中很重要,因为 Let's Encrypt 是一种广泛使用的自动证书颁发机构 (CA),它使用公共后缀列表来区分不同站点和单个站点的不同子域。
  • TXT记录很重要,因为它允许 ACME 客户端使用DNS 质询。客户端将 CA 选择的值TXT放在域上的记录中,以向 CA 证明用户对域名的控制。这避免了必须从 Internet 打开入站端口,这在 ISP 通常使用运营商级网络地址转换 (CGNAT) 将整个社区置于一个公共 IP 地址后面的地方证明是不可能的。

在撰写本文时,Duck DNS 就是这样的提供商之一。我不隶属于这个组织。

于 2020-10-22T17:35:26.320 回答