Невозможно использовать webpack-dev-server в качестве прокси для веб-сайта https - ERR_TLS_CERT_ALTNAME_INVALID - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь использовать webpack-dev-server в качестве прокси для запросов API к удаленному тестовому серверу (чтобы не устанавливать тяжелый Java-сервер на локальном компьютере).Проблема в том, что удаленный сервер использует только HTTPS.По какой-то причине он не принимает сертификат от webpack-dev-server, хотя он правильно открывается из браузера.

Моя package.json часть:

"webpack": "^3.12.0",
"webpack-dev-server": "^2.11.3"

Моя webpack.config.json part:

// -- DEV-SERVER
devServer: {
    contentBase: artifact,
    // publicPath: path.join(artifact, 'build', '/'),
    host: "lk-local.net",
    port: 8443,
    https: {
        key: fs.readFileSync('./src/main/profiles/local/cert/webpack/server.key'),
        cert: fs.readFileSync('./src/main/profiles/local/cert/webpack/server.crt'),
        ca: fs.readFileSync('./src/main/profiles/local/cert/webpack/cacert.crt'),
    },
    historyApiFallback: true,
    hot: true,
    headers: {'Access-Control-Allow-Origin': '*'},
    proxy: {
        '/client-config': 'https://dev-2.MYSERVER.ru/client-config',
        '/client-api/*': 'https://dev-2.MYSERVER.ru/client-api/',
        secure: false,
        changeOrigin: true
    }
}

Выход Webpack-dev-server:

webpack: Compiled successfully.
[HPM] Error occurred while trying to proxy request /client-api/checkBrowser from lk-local.net:8443 to https://dev-2.MYSERVER.ru/client-api/ (ERR_TLS_CERT_ALTNAME_INVALID) (https://nodejs.org/api/errors.html#errors_common_system_errors)
[HPM] Error occurred while trying to proxy request /client-config from lk-local.net:8443 to https://dev-2.MYSERVER.ru/client-config (ERR_TLS_CERT_ALTNAME_INVALID) (https://nodejs.org/api/errors.html#errors_common_system_errors)

Статическое открытие корректно, запросы к API не работают.

Я пытался использоватьдругие сертификаты и замените https на true.Результат без изменений.Как решить эту проблему?Спасибо!

1 Ответ

0 голосов
/ 02 декабря 2018

Я считаю, что ваши параметры changeOrigin и secure не указаны правильно. Форма '/client-config': 'https://dev-2.MYSERVER.ru/client-config' не поддерживает их, если я правильно читаю документы . Вы можете сделать либо:

proxy: { '/client-config': { target: 'https://dev-2.MYSERVER.ru/client-config', secure: false, changeOrigin: true }, ... }

или

proxy: [{ context: ['/client-config', '/client-api/*'], target: 'https://dev-2.MYSERVER.ru/', secure: false, changeOrigin: true }]

Кстати, если ваш браузер не выдает предупреждения безопасности, вам не нужен бит secure: false, и гораздо лучше не указывать его.

...