【问题标题】:Make local network IP a secure context?使本地网络 IP 成为安全上下文?
【发布时间】:2020-09-27 05:43:30
【问题描述】:

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

例如,crypto.subtle API 是 undefined,如果没有超过 https

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

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

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

【问题讨论】:

    标签: javascript web https secure-context


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 有趣的想法,我马上去看看。
      猜你喜欢
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 2015-03-19
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多