【问题标题】:Self-Signed Certificate for Node Web Server inside ElectronElectron 内 Node Web 服务器的自签名证书
【发布时间】:2019-04-22 18:23:15
【问题描述】:

我有一个带有节点网络服务器的 Electron 应用程序,我们的网站可以从 Electron 应用程序发布和获取信息。问题是该网站启用了 SSL (HTTPS),但 Electron 应用程序是 HTTP。当然,这会导致混合内容异常。

当前 Electron Web 服务器示例

http.createServer(function(req,res){
    var pathname=url.parse(req.url).pathname;
    var query = url.parse(req.url).query;
    //enable CORS
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Request-Method', '*');
    res.setHeader('Access-Control-Allow-Headers', '*');
    switch(pathname){
        case '/post':
            createPrintWindow(query);
            res.end('{"status":"200 OK"}');
        break;
        default:
            res.end('{"status":"running","currentVersion":"'+app.getVersion()+'","isUpdateAvailable":"false"}');
        break;
    }
}).listen(3000);

我发现我可以很容易地启用 SSL:

var express = require('express');
var https = require('https');
var http = require('http');
var fs = require('fs');

// This line is from the Node.js HTTPS documentation.
var options = {
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.cert')
};

// Create a service (the app object is just a callback).
var app = express();

// Create an HTTP service.
http.createServer(app).listen(80);
// Create an HTTPS service identical to the HTTP service.
https.createServer(options, app).listen(443);

How to create an HTTPS server in Node.js?

我的问题是,我不确定如何在安装过程中为 win32 和 64x 生成实际证书(我使用的是 electron-buider)。我知道我可以做 openSSL,但大多数没有安装 openSSL 的机器。

我什至找到了这个,但我没有看到任何文档或使用示例。 https://github.com/electron-userland/electron-builder/blob/master/packages/electron-builder/src/cli/create-self-signed-cert.ts

【问题讨论】:

    标签: node.js electron


    【解决方案1】:

    您似乎不需要从安装它的每台计算机生成.cert.pem 文件。您只需创建一次,然后将证书打包到 Electron 应用程序中即可。

    但是,您可能需要注意,您需要访问该页面一次 https://localhost:3000 并接受/忽略浏览器事先给您的警告,否则它将无法正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-03
      • 2012-06-20
      • 2011-08-15
      • 2011-08-12
      • 1970-01-01
      • 2019-05-13
      • 2015-10-21
      • 2013-07-18
      相关资源
      最近更新 更多