跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 前端挂外网,后端放内网,请问怎么解决 https 请求问题?
未分類
16 1 月 2021

前端挂外网,后端放内网,请问怎么解决 https 请求问题?

前端挂外网,后端放内网,请问怎么解决 https 请求问题?

資深大佬 : sudoy 11

也不知道这种骚操作有没有人这么干过,反正我正在这么干。就是把前端挂在类似 GitHub page 这样的地方,后端直接在内网(局域网)运行 REST API,然后就是直接在 https 的页面下 fetch( http://192.168.1.9:5000)。现在遇到的问题是,在 https 网站下面请求非 http 的 URL,浏览器会报错。我把内网的 API 改成 https (自签名的证书),浏览器还是会报错。

可能被问的问题

1. 为啥不统一放外网或者内网?

想尝试一下有没有这种操作。如果实在没有好的解决办法,我就把它放到内网去,或者找个没有用 https 的外网页面托管服务。

2. 为啥前端要用 https? 改成 http 不就好了?

外网的静态页面托管(类似 GitHub page )就是自带 https 的,设置不了

3. 为啥不是127.0.0.1或者localhost, 而是 192.168.1.9?

因为我们内网有一台电脑用来运行一些轻量级程序,没有公网 IP 。

大佬有話說 (27)

  • 資深大佬 : powerfulyang

    你好可爱呀.

  • 資深大佬 : dusu

    whistle 你值得拥有

  • 主 資深大佬 : sudoy

    @powerfulyang

  • 資深大佬 : dusu

    @dusu 好吧 审题错了 不是调试环境那就只能内网映射了

  • 資深大佬 : xiangyuecn

    买个玉米(正规签发证书需要,自签名部署根证书麻烦的一逼,沙雕高版本 Android 还不信任),解析到 192.168.1.9 。不要把内网当内网,这样看就和公网没有区别了

  • 主 資深大佬 : sudoy

    @dusu https://wproxy.org/whistle/ 您说的是这个吗?

  • 主 資深大佬 : sudoy

    @xiangyuecn 我也想到这个了,哈哈哈。这样一来同事还以为我部署到外网了,结果他们在别的地方还访问不了

  • 資深大佬 : Caballarii

    既然如此,外网又访问不了,那干嘛放外网

  • 資深大佬 : oott123

    浏览器可控吗?可以通过 flags 关闭安全策略(慎重),或者手动打开 https 的自签名证书信任一下,或者部署一个自签名的根

  • 資深大佬 : cmdOptionKana

    还是没看明白都放内网有何不可

  • 資深大佬 : docxs

    搞不懂,没有公网 ip,外网访问 192.168 怎么到你内网机器?难道我的网络白学了?!

  • 資深大佬 : m4d3bug

    内网穿透 or zerotier

  • 資深大佬 : walpurgis

    干过类似的,给同事写过一个油猴脚本,让他在别人网站上点一下就把网页内容爬下来发到公司内网服务器上
    因为别人网站是 https 的,导致内网服务器也必须是 https
    解决办法?配个 https 证书就完事了,内网和 https 完全不矛盾,证书绑定的是域名,域名指向内网地址就行了

  • 資深大佬 : wpblank

    弄个域名解析到 192 就好吧

  • 資深大佬 : muzuiget

    实在看不懂,是 https/http 混合内容,还是还是同源策略限制。

    你浏览器地址是 github 的 https 地址还是内网的 http 地址,如果是后者,应该是行的。

  • 資深大佬 : alan0liang

    我们正在这么干,而且是内网动态 ip 。基本思路就是是把内网 ip 解析到域名上,有一些服务(比如 sslip.io )可以把任意 ip 对应到域名上,比如 192.168.1.1 -> 192-168-1-1.ip.cpnp.xyz ,申请个泛域名证书(*.ip.cpnp.xyz )部署到内网服务器上,内网服务器检测到内网 ip 变化的时候更新一下前端。(记得配 CORS )

  • 資深大佬 : sujin190

    或许可以考虑内网部署个单独的 dns 服务器,这样内外网域名解析结果就可以不一样,公网部署前端,内网前后端一起部署或者反代下前端,这样只有连上内网就才能正常用

  • 主 資深大佬 : sudoy

    @alan0liang 谢谢!我这边内网 IP 也会变,不过不用考虑内网 IP 变化,因为我直接用 hostname 即可。Windows 的话就直接是电脑名字,Linux 的话就是 hostname 。

  • 資深大佬 : hjylxmhzq

    搞个域名配个证书就好了

  • 資深大佬 : eason1874

    报错要看是什么错。这情况应该就两个可能:

    1 、自签证书不被信任,那手动信任一下证书就好了。
    2 、跨域问题,fetch 网址没有 Access-Control-Allow-Origin 头,那加上就好了。

  • 資深大佬 : mikeguan

    我是没看懂这个操作,具体是基于什么考虑。
    内网有资源放后端程序,不在乎前端占用那点资源了吧
    如果只是想验证,那么是可行的

  • 資深大佬 : SingeeKing

    如果只是自己用的话,自签一个证书然后信任就可以

  • 資深大佬 : dzdh

    随便买个域名(哪怕是 tk 域名)。A 记录指向内网 IP 。然后给 letsencrypt 弄个免费证书即可。

  • 資深大佬 : yanzhiling2001

    我现在就是,计算部分放到内网里,不过我用的是 frp 内网转发,公网上用 nginx 配置 https,然后用用 nginx 反向代理到 frp 的 web 端口上,还没遇到这样的问题

  • 主 資深大佬 : sudoy

    谢谢大家回复!最后决定都放内网上了吗

  • 資深大佬 : pkwenda

    @sudoy #25 是不是多了个吗

  • 主 資深大佬 : sudoy

    @pkwenda 嗯,多打了一个字

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具