【问题标题】:Running a local dev IPFS gateway that supports HTTPS运行支持 HTTPS 的本地开发 IPFS 网关
【发布时间】:2020-09-04 08:35:04
【问题描述】:

我正在构建一个分布式网络应用程序,旨在托管在 IPFS 上。我想在 Web 浏览器中进行开发,使用我的本地网关来提供我的文件,但我使用了未经 HTTPS 提供的不允许使用的 Javascript API。

我尝试使用指向本地 IPFS http 网关的自签名 ssl 启动反向代理,但是当我使用反向代理访问链接时,例如 https://___hashhere___.ipfs.localhost:8081/,我被重定向到 http://___hashhere___.ipfs.localhost:8080/

GATEWAY_PORT=$(ipfs config Addresses.Gateway | cut -d'/' -f 5)
HTTPS_PORT=$((GATEWAY_PORT+1))

echo "https proxy to your ipfs gateway now at: https://localhost:$HTTPS_PORT"
exec npx local-ssl-proxy --source $HTTPS_PORT --target $GATEWAY_PORT

如何在一两个命令中运行本地 https+ipfs 网关?我想我需要一个反向代理来重写响应中的 URL?

【问题讨论】:

    标签: node.js reverse-proxy ipfs


    【解决方案1】:
    • 如果您使用基于 Chromium 的浏览器,则 http://___hashhere___.ipfs.localhost:8080/ 会将 window.isSecureContext 设置为 true,您将可以访问所有 Web API。无需在 localhost 上使用 Chromium 为 dev 设置 TLS(Firefox 有 bug)。

    • 如果您正在运行 IPFS Companion,您可能希望在开发应用程序时禁用它,以确保对 IPFS 资源的请求不会重定向到浏览器扩展首选项中设置的网关。

    • 在生产中,您将 go-ipfs 部署在反向代理后面,该代理会终止 TLS。您可以通过X-Forwarded-ProtoX-Forwarded-Host 标头控制某些重定向中使用的协议方案和主机,如go-ipfs/docs/config.md 中所述

    【讨论】:

    • 这很有帮助,谢谢!我确实启用了 IFPS 伴侣,这导致了问题。所有 localhost 域都有 window.isSecureContext='true' 的经验法则吗?
    • 所有基于 Chromium 的浏览器都是如此,我希望其他浏览器供应商在某个时候实现将 localhost 绑定到环回设备 (rfc6761),如果他们还没有的话(前提条件安全上下文)。
    猜你喜欢
    • 2011-01-06
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 2014-04-29
    相关资源
    最近更新 更多