web-dev-qa-db-ja.com

netcat(nc)を使用してHTTPSに接続する

私は大学の宿題に取り組んでいます。タスクは、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
45
Oto Brglez

ncはhttpsを実行しません。 openssl s_clientは、できるだけ近づきます。このようなことをしてください:

$ cat request.txt | openssl s_client -connect server:443
56
Bill Weiss

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)内の接続)。

http://www.stunnel.org

それは非常にUNIX-yです。 1つの簡単なタスクに1つの優れたツール。

6
Yves Junqueira

教授またはTAに支援を求めます。現実の世界では、netcatを介してHTTPSを実行することは決してありません(openssl s_clientは私の第一選択のツールですが、他のオプションもあります)。したがって、現実世界の人々に尋ねることによって、教授が望んでいる「正しい」答えを見つける可能性は低いです。私はおそらく講義のすべてのスライド/ノートを検討します。通常、この種の「不可能」な質問は実際に講義で回答され、クラスで実際に誰が注目しているかを確認するためだけに尋ねられます。

3
womble