当后端在 https 上时,Nuxt3 Js “自签名证书错误”

问题描述 投票:0回答:1

我的后端(API 端点)在 https://localhost:44308/api 上运行。在这种情况下,Nuxt3.js 会出现以下错误:

request to https://localhost:44308/api/menus failed, reason: self signed certificate ()
at async $fetchRaw2 (/C:/D/MyApp/Source/WebUser/app/node_modules/ohmyfetch/dist/chunks/fetch.mjs:131:20)
at async Proxy.fetchData (/C:/D/MyApp/Source/WebUser/app/.nuxt/dist/server/server.mjs:52133:22)
at async setup (/C:/D/MyApp/Source/WebUser/app/.nuxt/dist/server/server.mjs:68832:5)

我的代码:

async fetchData() {
      const config = useRuntimeConfig();
      const result = await $fetch(`${config.apiBase}/menus`, {
        headers: {
          "Content-Type": "application/json",
          "Accept-Language": "en",
          // Authorization: `Bearer ${useRuntimeConfig().apiSecret}`,
        },
      });
      console.log(result);
      return result;
    }

解决这个问题的方法是什么?我看到线程建议运行 Nuxt3.js。 有人请帮助我。非常感谢

nuxt.js vuejs3 self-signed nuxtjs3
1个回答
1
投票

抛出该错误是因为本地主机 API 仅在自签名证书后面,对于生产始终使用真正的授权证书。

要在开发中测试自签名证书时使用它,您可以执行以下操作。

如果您还没有 .env 文件,请在您的 nuxt3 根目录中创建一个。然后添加行:

NODE_TLS_REJECT_UNAUTHORIZED = 0

然后运行

npm run dev

开发服务器将向 API 发出请求并忽略它的自签名证书未经授权的事实。

用于在运行后 API 具有自签名证书时在开发机器上测试构建

npm run build

然后启动服务器:

NODE_TLS_REJECT_UNAUTHORIZED='0' node .output/server/index.mjs

API 请求现在也可以在构建版本中工作,但每个请求都会有用地抛出以下提醒警告:

警告:设置 NODE_TLS_REJECT_UNAUTHORIZED 环境变量 为“0”通过禁用使 TLS 连接和 HTTPS 请求不安全 证书验证。

© www.soinside.com 2019 - 2024. All rights reserved.