Развертывание приложения Nodejs в Windows без IIS и без закрытого ключа - PullRequest
0 голосов
/ 02 апреля 2019

Я прочитал тонну статей в Интернете и посмотрел тонну вопросов о переполнении стека, связанных со следующим, и все они в основном предоставляют то же решение, которое я не могу реализовать из-за проблем безопасности в моей компании.,

Я пытаюсь развернуть приложение NodeJS на защищенном сервере Windows без IIS.Я даже не уверен, возможно ли это - поддержка развертывания приложений для узлов в окнах очень мала, и какая поддержка говорит о совместном использовании IIS и iisnode.Чтобы усложнить ситуацию, моя компания не даст мне ключ к основному SSL-сертификату сервера.

У меня есть доступ к серверу / хранилищу сертификатов / сертификату, но я не могу экспортировать его ключ.Просто интересно, есть ли способ, чтобы server.js указывал только на сертификат, а не на сертификат и ключ?

Я пытался получить доступ к сертификату и извлечь ключ через https://www.npmjs.com/package/win-ca но не повезло с этим.

Я смог использовать самоподписанный сертификат и заставить все работать, но вам нужно принять самоподписанный сертификат в вашем браузере, который не является жизнеспособным решением для производства.

Я также изучал использование nginx, давайте шифруем и т. Д., Но поддержка Windows для них тоже не так уж велика.

Вот мой код, который работает, но, как я уже сказал, мне нужно принять самозаверяющую сторону сертификата клиента, которая не идеальна:

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

const options = {  
//self-signed cert, I'd rather point this to the main cert for the server  
//but I don't have access to the key  
  key: fs.readFileSync('cert.key'),  
  cert: fs.readFileSync('cert.pem'),  
};  

// Create an HTTP service.  
http.createServer(app).listen(80);  

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

app.get('/', function (req, res) {  
    res.send('Hello World!');  
});  

1 Ответ

0 голосов
/ 10 апреля 2019

В конце я удалил все файлы, связанные с сертификатами и безопасностью, из моего файла server.js и просто поместил веб-сайт за прокси-сервером с балансировкой нагрузки.

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