Назад | Перейти на главную страницу

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

У меня есть сервер Unbuntu под управлением NodeJS, куда я хочу загрузить несколько файлов. Некоторые из файлов содержат некоторые данные, которые я бы предпочел не допустить, но это не будет большой проблемой, если кто-то завладеет файлами. Мой сервер NodeJS в настоящее время является обычным HTTP-сервером, но насколько я понимаю из Эта статья, должна быть возможность принудительного шифрования загрузки файлов HTTP. Означает ли это, что я могу загрузить файл с помощью запроса HTTP POST, и он зашифрован? Откуда при загрузке файла известно, что файл нужно зашифровать?

HTTP-запрос отправляется из Microsoft Flow.

Протокол 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.

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

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