【问题标题】:Ngrok tunnel https via configNgrok 隧道 https 通过配置
【发布时间】:2021-04-16 20:36:23
【问题描述】:

我在寻找如何正确编写我的 ngrok.yml 文件以便它将使用 https 启动隧道时遇到一些问题。我目前拥有的如下:

tunnels:
  invenutory:
    proto: http
    addr: 44328
    host_header: localhost

这里的问题是,如果我使用 ngrok 给我的 url,它不会连接(我通过查看它是否命中我的 healthcheck 端点来测试它,它没有)。但是,如果我使用以下命令启动 ngrok: ngrok http https://localhost:44328 -host-header="localhost:44328" 然后它会正确地到达我的端点。如何使我的配置文件以相同的方式运行?

编辑:

如果我将addr 设置为addr: "https://localhost:44328",那么它确实可以正确使用https,但由于某种原因,这在我看来是一种不正确的做法。

【问题讨论】:

  • IMO 您需要将端口号添加到host_header 值:host_header: localhost:44328。在文档的示例中,使用的端口是默认端口,因此不需要它们。在您的命令行中,您还指定host:port 而不仅仅是host。 Quote: 请求中的“Host”标头字段提供来自目标URI的主机和端口信息
  • 我确实尝试将 host_header 设置为那样,但看起来 ngrok 隧道的 https 和 http 仍然只映射到 http,而不是 http 转到 http 和 https 转到 https。拥有免费帐户是否有限制?
  • 我明白了。我不确定免费帐户,但它看起来不像。
  • 我想现在还可以,我在编辑中发布的解决方法应该足以满足我现在的需求

标签: ngrok tunnel


【解决方案1】:

要使用 ngrok http 隧道启动仅 https 隧道,请使用标志 -bind-tls

这与你如何使用addr 无关,它可以用来让 ngrok 知道你的本地服务器是在监听 http 还是 https。

来自docs

ngrok 假设它转发到的服务器正在侦听未加密的 HTTP 流量,但如果您的服务器正在侦听加密的 HTTPS 流量怎么办?您可以使用 https:// 方案指定 URL,以请求 ngrok 向您的本地服务器发送 HTTPS。

【讨论】:

    【解决方案2】:

    您可以将bind_tls 标志添加到配置文件中,以根据docs 仅创建HTTPS 隧道

    tunnels:
      invenutory:
        proto: http
        addr: 44328
        host_header: localhost
        bind_tls: true
    

    【讨论】:

      猜你喜欢
      • 2016-09-18
      • 2015-07-13
      • 2019-11-12
      • 2017-02-21
      • 1970-01-01
      • 2013-05-08
      • 2018-01-18
      • 2022-07-14
      • 2019-03-27
      相关资源
      最近更新 更多