Node.js 运行支持HTTPS的本地开发人员IPFS网关

Node.js 运行支持HTTPS的本地开发人员IPFS网关,node.js,reverse-proxy,ipfs,Node.js,Reverse Proxy,Ipfs,我正在构建一个分布式web应用程序,设计用于托管在IPFS上。我想在web浏览器中进行开发,使用我的本地网关为我的文件提供服务,但我使用的Javascript API在没有HTTPS的情况下是不允许的 我尝试使用指向本地IPFS http网关的自签名ssl启动反向代理,但是当我使用反向代理访问链接时,比如说https://___hashhere___.ipfs.localhost:8081/,我被重定向到http://___hashhere___.ipfs.localhost:8080/: GA

我正在构建一个分布式web应用程序,设计用于托管在IPFS上。我想在web浏览器中进行开发,使用我的本地网关为我的文件提供服务,但我使用的Javascript API在没有HTTPS的情况下是不允许的

我尝试使用指向本地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?

  • 如果使用基于Chromium的浏览器,则
    http://___hashhere___.ipfs.localhost:8080/
    将有
    窗口。isSecureContext
    设置为
    true
    ,您将有权访问所有Web API。不需要在使用Chromium的localhost上为dev安装TLS(Firefox有一个)

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

  • 在生产环境中,您在反向代理后面部署go IPF,该代理终止TLS。您可以通过
    X-Forwarded-Proto
    X-Forwarded-host
    头控制某些重定向中使用的协议方案和主机,如中所述


这非常有帮助,谢谢!我确实启用了IFPS companion,这导致了问题。是否所有本地主机域都有window.issecurencontext='true'的经验法则?对于所有基于Chromium的浏览器都是如此,我希望其他浏览器供应商在某个时候实现将本地主机绑定到环回设备(),如果他们还没有(安全上下文的先决条件)。