Я прочитал тонну статей в Интернете и посмотрел тонну вопросов о переполнении стека, связанных со следующим, и все они в основном предоставляют то же решение, которое я не могу реализовать из-за проблем безопасности в моей компании.,
Я пытаюсь развернуть приложение 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!');
});