заставить ssl с nodejs и реагировать - PullRequest
0 голосов
/ 12 октября 2019

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

function requireHTTPS(req, res, next) {
   if (!req.secure && req.get('x-forwarded-proto') !== 'https' && process.env.NODE_ENV !== "development") {
      return res.redirect('https://' + req.get('host') + req.url);
   }
   next();
}
app.use(requireHTTPS);

этот вид кода используется для ExpressJS, чтобы заставить ssl. (код из lavamantis )

, затем я провел несколько исследований о форсировании ssl с помощьюactjs, потому что использование res.redirect с реакцией - это не то, что я слышал раньше. и, как мне кажется, я должен сделать следующее в package.json

 "scripts": {
    "start": "set HTTPS=true&&react-scripts start",
    ...
 }

, так что мне делать, когда я использую responsejs с nodejs? я не развернул ни одного приложения их комбинации, но когда я думаю, я буду использовать nginx

1 Ответ

1 голос
/ 12 октября 2019

Я не хочу использовать ssl в режиме разработки, но я говорю о производстве

Упрощенный сценарий выглядит так:

  • Вы занимаетесь разработкой в ​​среде разработки, например, на своем ноутбуке. Вы не используете SSL. У вас есть cookie-файл, чувствительный к безопасности, но Express не делает его только безопасным, иначе клиент (например, браузер) с вашим приложением React не сможет отправить его обратно в Express, чтобы доказать, что пользователь уже вошел в систему. in.

  • Вы закончили разработку и тестирование, и теперь вы переходите от сборки разработки приложения React и кода бэкэнда / Express к производственной сборке. Вы не используете SSL. Вы завершили тестирование рабочей сборки.

  • Вы добавили Nginx и протестировали, что приложение React может получить доступ к Express, используя Nginx в качестве обратного прокси-сервера. Вы не используете SSL.

  • Вы генерируете самозаверяющий сертификат SSL и используете его для переключения Nginx на: (a) использование SSL и (b) для прекращения трафика SSL. Конечная точка HTTP больше не отображается, Nginx больше не принимает HTTP-соединения. Только HTTPS. Вы заставляете клиент / браузер доверять этому самогенерируемому сертификату. Вы изменяете производственную сборку, чтобы генерировать файлы cookie только для безопасности. Вы тестируете приложение React, и оно работает с Express через Nginx.

  • Вы переходите от dev environemt к производственной среде, например, развертываете свою производственную сборку в облаке или где-либо еще. Вы заменяете самогенерируемый SSL-сертификат надлежащим, выданным CA. Выдается либо за плату, либо бесплатно. Вы добавляете брандмауэр, предоставленный поставщиком среды развертывания. Брандмауэр может по желанию прекратить трафик SSL, встроенный в Nginx.

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