使用Electron覆盖自签名SSL证书警告

使用Electron覆盖自签名SSL证书警告,electron,Electron,前面有两个问题可以引出这个问题(如果您感兴趣): 在中,您是否能够覆盖通过现代web浏览器使用自签名证书时通常会收到的SSL证书警告 通常,在桌面应用程序中,您不必遵守web浏览器警告的严格的在线银行级别证书标准。我传输的数据没有那么敏感 事实上,我将应用程序从http移动到https的唯一原因之一是,除非协议是https,否则某些web标准API将无法运行。这是一个例子 否则,我通过内部网传输的数据就没有那么敏感了。然而,浏览器试图让我(和我的用户)负担网上银行级别的证书认证 我试图以某种

前面有两个问题可以引出这个问题(如果您感兴趣):

  • 在中,您是否能够覆盖通过现代web浏览器使用自签名证书时通常会收到的SSL证书警告

    通常,在桌面应用程序中,您不必遵守web浏览器警告的严格的在线银行级别证书标准。我传输的数据没有那么敏感

    事实上,我将应用程序从http移动到https的唯一原因之一是,除非协议是https,否则某些web标准API将无法运行。这是一个例子

    否则,我通过内部网传输的数据就没有那么敏感了。然而,浏览器试图让我(和我的用户)负担网上银行级别的证书认证


    我试图以某种方式避免这种情况,并认为也许Electron可以给我更多的客户端控制来预先批准我的自签名证书。这在Electron中可行吗?

    我在
    https
    和不受信任的代理证书方面遇到了一些问题,而这在我的
    index.js中也存在

    // We have to deal with self-signed and therefore untrusted root certificates.
    global.process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
    

    这是一个内部网应用程序,永远不会连接到internet,所以我在这里可以使用。

    注意,这会禁用任何证书验证。它不仅会默默地接受您的自签名证书,还会默默地接受任何证书。就我所知,所有的HTTPS连接。就TLS/HTTPS而言,它几乎禁用了安全性。@marcelm这可能是一个遗憾,因为这必须是一个全有或全无的解决方案,但让我的用户感到困惑的警告和他们必须始终接受的警告给我的用户带来了负担,这也是一个遗憾。如果有一种更精细的方法,只允许我打算允许的一个自签名证书,那么请发布一个答案。有一种替代方法,但对用户来说几乎总是“太多”。因为每个用户都必须进行一些配置或信任您。我们可以设置一个env变量
    NODE\u EXTRA\u CA\u CERTS
    ,该变量具有指向
    *.pem
    文件的路径,其中包含所有也应信任的证书。因此,要么用户配置(…忘了它),要么你将其与你的应用捆绑在一起,但他们必须相信你,它只包括正确的证书,而不包括其他证书。。。我需要它来更新公司代理背后的electron…@LonnieBest更精细的方法当然是获得证书,但我已经说过很多次了,你似乎不愿意接受。遗憾的是,在这个问题上我没有答案。我认为这个答案对安全有巨大影响的评论仍然有效;如果不是为了你,那么至少要提醒未来的读者这个答案。@marcelm请不要把我对所有选项的探索误认为是拒绝了你的建议。毕竟,我可能会完全按照你的建议去做。