私は大学の宿題に取り組んでいます。タスクは、nc(netcat)を使用してHTTPSでWebページをフェッチすることです。
HTTP経由でページを取得するには、次のようにします。
cat request.txt | nc -w 5 <someserver> 80
Request.txtにはHTTP 1.1リクエストがあります
GET / HTTP/1.1
Host: <someserver>
さて...これはうまくいきます。 HTTPSを使用するWebページを取得するにはどうすればよいですか?
このようなページの証明書を取得します。そして、これが私が行き詰まっているポイントです
openssl s_client -connect <someserver>:443
nc
はhttpsを実行しません。 openssl s_client
は、できるだけ近づきます。このようなことをしてください:
$ cat request.txt | openssl s_client -connect server:443
ncat --ssl
Sudo apt-get install nmap
printf 'GET / HTTP/1.1\r\nHost: github.com\r\n\r\n' | ncat --ssl github.com 443
スーパーユーザーでも同じ: https://superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl
Ubuntu 18.04でテスト済み。
あなたはおそらくstunnelを使いたいでしょう。
A GNUプログラムは、任意の暗号化を許可しますTCP Secure Sockets Layer(SSL)内の接続)。
それは非常にUNIX-yです。 1つの簡単なタスクに1つの優れたツール。
教授またはTAに支援を求めます。現実の世界では、netcatを介してHTTPSを実行することは決してありません(openssl s_client
は私の第一選択のツールですが、他のオプションもあります)。したがって、現実世界の人々に尋ねることによって、教授が望んでいる「正しい」答えを見つける可能性は低いです。私はおそらく講義のすべてのスライド/ノートを検討します。通常、この種の「不可能」な質問は実際に講義で回答され、クラスで実際に誰が注目しているかを確認するためだけに尋ねられます。