HTTPS サーバーへの HTTP リクエストを強制的に暗号化できますか?

HTTPS サーバーへの HTTP リクエストを強制的に暗号化できますか?

私はNodeJSを実行しているUnbuntuサーバーを持っていて、そこにいくつかのファイルをアップロードしたいと考えています。ファイルの中には、漏洩したくないデータが含まれていますが、誰かがファイルを入手しても大きな問題にはなりません。私のNodeJSサーバーは現在、プレーンなHTTPサーバーですが、この記事、HTTP ファイルのアップロードを強制的に暗号化できるはずです。つまり、HTTP POST リクエストを使用してファイルをアップロードでき、そのファイルは暗号化されているということですか? ファイル アップロードはどのようにしてファイルを暗号化する必要があるかを知るのですか?

HTTP リクエストは Microsoft Flow から送信されます。

答え1

HTTP プロトコルは TCP プロトコル上で動作します。HTTPS は TLS 上で動作します。したがって、基盤となる接続は異なります。HTTPS 暗号化を使用してフォームを送信するには、「Upgrade」HTTP ヘッダーを使用して HTTP 接続を HTTPS にアップグレードする必要があります。https://en.wikipedia.org/wiki/HTTP/1.1_アップグレード_ヘッダー

HTTP はデータを暗号化するように設計されていません。

Node.jsに関する質問については、ここでコードスニペットを見てみましょう。

var https = require('https');
https.createServer(options, app).listen(443);

モジュールはhttps、HTTPSトラフィックに使用されるポート443をリッスンするサーバーを作成します。次のスニペットは、ポート80のトラフィックをリッスンするHTTPサーバーを作成します。

var http = require('http');
http.createServer(app).listen(80);

これで、2 つの異なるポートでリッスンしている 2 つのサーバーができました。結論として、HTTP と HTTPS は異なる接続で使用されます。残念ながら、HTTP セッションをその場で HTTPS に変更することはできません。

答え2

action最も簡単な解決策は、 https URL に設定することだと思います。

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

関連情報