代码之家  ›  专栏  ›  技术社区  ›  bbsimonbb

如何修复这些sockjs ssl错误?

  •  5
  • bbsimonbb  · 技术社区  · 6 年前

    有了Vuecli3,我有了一个Vue应用程序,它正在开发模式中快速运行。我叫NPM跑发球,我明白了…

    在431ms内成功编译完成 16点26分43秒 应用程序运行时间: -本地:http://localhost:8080/mobileapp/v/ -网络:http://172.18.55.202:8080/mobileapp/v/

    (路径/mobileapp/v/来自baseurl config变量。notilusdev.dimososoftware.com/mobileapp域指向IIS中的vdir,对/mobileapp/v/的请求被反向代理到webpack dev server)。

    在浏览器中,应用程序没有问题。然后它开始触发对https://172.18.55.202:8080/sockjs node/info的请求?T=1529072806971。这些请求失败,因为该端口上没有SSL。我甚至不希望IP作为站点的公共地址。Webpack(或sockjs)如何构造此URL?当它刚刚给我一个直接的HTTP链接时,为什么它认为这个端口上有SSL?如果它基于地址栏协议,那么为什么它忽略了地址栏主机名。我可以配置什么使这些请求成功?

    .

    (路径 /mobileapp/v/ 来自baseurl配置变量。notilusdev.dimososoftware.com/mobileapp域指向IIS中的vdir,对/mobileapp/v/的请求被反向代理到webpack dev server)

    在浏览器中,应用程序没有问题。然后它开始发出请求 https://172.18.55.202:8080/sockjs-node/info?t=1529072806971 .这些请求失败,因为该端口上没有SSL。我甚至不希望IP作为站点的公共地址。Webpack(或sockjs)如何构造此URL?当它刚刚给我一个直接的HTTP链接时,为什么它认为这个端口上有SSL?如果它基于地址栏协议,那么为什么它忽略了地址栏主机名。我可以配置什么使这些请求成功?

    2 回复  |  直到 5 年前
        1
  •  5
  •   bbsimonbb    5 年前

    这是一场斗争,但现在起作用了…

    public devServer Vue.config中的对象。

    公众的 publicPath configureWebpack{ devServer: { .你需要使用顶层

    module.exports = {
      baseUrl: process.env.NODE_ENV === 'production'
        ? '/production-sub-path/'
        : '\/mobileapp\/v\/',
        devServer :{
          public : 'notilusdev.dimosoftware.com',
          host : '0.0.0.0',
          disableHostCheck : true
        }  
    }
    

        2
  •  1
  •   Ohgodwhy    6 年前

    您需要明确提供 key/cert/pem?

    devSever: {
      ...,
      key: fs.readFileSync('/path/to/server.key'),
      cert: fs.readFileSync('/path/to/server.crt'),
      ca: fs.readFileSync('/path/to/ca.pem'),
    }
    

    这将使用正确的SSL并解决您的问题。

    你不能决定不使用 https localhost:8081