在电子应用程序中处理“无法获取本地颁发者证书”的正确方法

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

节点/电子应用程序部署在最终用户的计算机上。它尝试向服务器发出 HTTPS 请求。根据用户的网络设置,这可能会正常工作,或者 Node 可能会抛出错误

"Unable to Get Local Issuer Certificate"
。据我了解,当客户端位于具有 SSL 拦截或类似功能的代理后面时,就会发生这种情况。

我知道 SO 和 github 上充满了这样的问题。但我能找到的唯一通用“解决方案”是在进程级别完全破坏 SSL:

process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0

或在请求级别:

rejectUnauthorized: "false"

还可以选择在发出 HTTP 请求时以某种方式指定正确的证书。但它似乎几乎需要为每个用户进行自定义设置,而且我还没有找到任何以通用方式执行此操作的示例。

1。为什么此问题特定于 Node 应用程序,而计算机上的所有其他应用程序都运行良好?

2。能通用、跨平台修复吗?

node.js ssl ssl-certificate electron
1个回答
0
投票

我认为正确的方法如这个答案所述:

总结:

  • 猜猜它正在尝试访问哪个网站——可能是

    github.com
    ,以便下载 Electron 二进制文件的版本,例如来自 https://github.com/electron/electron/releases/tag/v28.2.0

  • 使用 Chrome 导航到该页面,查找并导出该页面的根证书

    对我来说,这会创建一个 PEM 文件格式的

    *.crt
    文件,即我的下载目录

  • 将此文件的路径添加到 npm 的

    cafile
    配置选项中。

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