Можно ли принудительно зашифровать HTTP-запрос к HTTPS-серверу?

Можно ли принудительно зашифровать HTTP-запрос к HTTPS-серверу?

У меня есть сервер 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

Я думаю, что самым простым решением будет установить actionURL-адрес https.

<form action="https://<YOUR_Server/post-handler" method="post" ...>

Связанный контент