
У меня есть сервер Unbuntu, на котором запущен NodeJS, куда я хочу загрузить некоторые файлы. Некоторые из файлов содержат некоторые данные, которые я бы предпочел не раскрывать, но это не будет большой проблемой, если кто-то получит доступ к файлам. Мой сервер NodeJS в настоящее время является простым HTTP-сервером, но насколько я понимаю изЭта статья, должно быть возможно принудительно зашифровать HTTP-загрузки файлов. Означает ли это, что я могу загрузить файл с помощью HTTP-запроса POST, и он будет зашифрован? Откуда загрузка файла знает, что файл нужно зашифровать?
HTTP-запрос отправляется из Microsoft Flow.
решение1
Протокол HTTP работает поверх протокола TCP. HTTPS работает поверх TLS. поэтому базовые соединения отличаются. Чтобы отправить форму с шифрованием HTTPS, вам нужно будет обновить ваше HTTP-соединение до HTTPS с помощью заголовка HTTP "Upgrade".https://en.wikipedia.org/wiki/HTTP/1.1_Upgrade_header
HTTP не был разработан для шифрования данных.
Что касается вашего вопроса по nodejs, давайте посмотрим на фрагмент кода здесь
var https = require('https');
https.createServer(options, app).listen(443);
Модуль https
создаст сервер, который прослушивает порт 443, который используется для вашего HTTPS-трафика. Следующий фрагмент создает ваш HTTP-сервер, который прослушивает трафик на порту 80.
var http = require('http');
http.createServer(app).listen(80);
Итак, теперь у вас есть два сервера, прослушивающие два разных порта. Чтобы завершить мой ответ, HTTP и HTTPS используются на разных соединениях. Боюсь, вы не сможете мутировать ваш сеанс HTTP в HTTPS на лету.
решение2
Я думаю, что самым простым решением будет установить action
URL-адрес https.
<form action="https://<YOUR_Server/post-handler" method="post" ...>