【问题标题】:How can I enable https in vue(axios)如何在 vue(axios) 中启用 https
【发布时间】:2021-11-02 03:42:59
【问题描述】:

vue版本是vue3。 axios 版本为 0.24.0。 当我使用此方法启用 HTTPS 时,它注意到我的证书无效。

    const axios = require('axios')
    const fs = require('fs')
    const https = require('https')
    import { Notify } from 'quasar';
    
    const httpsAgent = new https.Agent({
      ca: fs.readFileSync('xxx.pem')
    })
    
    axios.get('https://example.com:9500/xxx', { httpsAgent });

证书是 PKCS8 中的自签名证书。 错误信息是

Failed to load resource: net::ERR_CERT_AUTHORITY_INVALID

我确定证书是服务器根 CA。但似乎在我的代码中不起作用。 我不知道我的代码或证书有什么问题。也许需要 pkcs12 证书?谁能回答我。非常感谢。

【问题讨论】:

  • 看起来你把东西混在一起了。您显示的是服务器端代码,错误是客户端。
  • 代码和错误都是客户端。服务端是nginx,客户端是electron中的Vue。有问题的代码是 Vue 代码。 @EstusFlask
  • stackoverflow.com/help/how-to-ask。没有人建议您使用 Electron。您发布的代码是 Electron 应用程序的 Node.js 部分,它不会导致此错误,因为这是浏览器错误(浏览器 API 中没有 fs 等)。该错误是由 Electron 应用程序的浏览器部分引起的,未显示。问题不是 Vue 本身,因为 Vue 不关心你如何处理请求,你可以用普通的 Axios 重现它或获取代码。请提供可以重现问题的stackoverflow.com/help/mcve

标签: vue.js https axios


【解决方案1】:

https 和 fs 是不应与 Quasar 一起使用的服务器端库。在客户端,您可以使用 https 简单地删除它们,请求将自动通过 https,因为它是您在 axios 请求中指定的协议:

const axios = require('axios')
import { Notify } from 'quasar';

axios.get('https://example.com:9500/xxx', { httpsAgent });

在服务器端启用 https 是一个完全不同的话题,与 VueJS 无关,如果您使用的是 nginx,它与 javascript 完全无关。如果您使用 express,https 和 fs 将起作用,例如,如以下问题所示:Enabling HTTPS on express.js

【讨论】:

    猜你喜欢
    • 2019-02-02
    • 2018-07-23
    • 2021-04-03
    • 2020-11-07
    • 2019-04-16
    • 2021-07-19
    • 2023-02-15
    • 2020-09-04
    • 2019-07-16
    相关资源
    最近更新 更多