Использование экспресс-сервера в качестве электронного прокси приложения для запросов HTTPS - PullRequest
0 голосов
/ 07 октября 2018

Я использую session.setProxy для маршрутизации каждого запроса через мой базовый экспресс-сервер.

Я хочу загрузить веб-страницу и заменить содержимое страницы своим собственным контентом.

Если язагрузить http-адрес, содержимое с экспресс-сервера загружено, но если я использую https, приложение будет пустым.

Вот main.js моего электронного приложения:

const electron = require('electron')
const { app, BrowserWindow } = electron
var win;

app.on('ready', initwindow);

function initwindow() {
    win = new BrowserWindow({show:true});

    win.webContents.session.setProxy({
        proxyRules: 'https://xxx',
    }, () => {
        win.loadURL('https://www.google.com/');
    });
}

Вот мойЭкспресс-сервер:

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

const app = express();

const credentials = {
    key: fs.readFileSync('/etc/letsencrypt/live/xxx/privkey.pem'),
    cert: fs.readFileSync('/etc/letsencrypt/live/xxx/fullchain.pem'),
};

app.get('/', function(req, res) {
    res.send('Hello world')
})

const httpServer = http.createServer(app);
const httpsServer = https.createServer(credentials, app);

httpServer.listen(80, () => {
    console.log('HTTP Server running on port 80');
});

httpsServer.listen(443, () => {
    console.log('HTTPS Server running on port 443');
});

Например, если я использую win.loadURL('http://www.google.com/'); отображается «Hello world», но если я использую win.loadURL('https://www.google.com/');, электронное приложение просто белое.

Есть личего-то не хватает на моем сервере или то, что я пытаюсь сделать, невозможно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...