使用 netcat (nc) 连接到 HTTPS

Oto*_*lez 49 http https openssl netcat

我正在为我的大学课程做家庭作业。任务是使用nc (netcat)在 HTTPS 上获取网页。

要通过 HTTP 获取页面,我可以简单地执行以下操作:

cat request.txt | nc -w 5 <someserver> 80
Run Code Online (Sandbox Code Playgroud)

request.txt我有一个 HTTP 1.1 请求

GET / HTTP/1.1
Host: <someserver>
Run Code Online (Sandbox Code Playgroud)

现在......这工作得很好。然而,挑战是 - 获取使用 HTTPS 的网页?

我得到了这样的页面证书。这就是我目前陷入困境的地方

openssl s_client -connect <someserver>:443
Run Code Online (Sandbox Code Playgroud)

Bil*_*iss 68

nc不做https。 openssl s_client尽可能接近。做这样的事情:

$ cat request.txt | openssl s_client -connect server:443
Run Code Online (Sandbox Code Playgroud)

  • 我试过这个,但我没有得到服务器在标准输出中发回给我的内容...... (13认同)
  • 我的意思是,除非您的任务是编写一些执行 SSL 的代码。那将是 StackOverflow 领域:) (4认同)

Cir*_*郝海东 47

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
Run Code Online (Sandbox Code Playgroud)

超级用户相同:https : //superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

在 Ubuntu 18.04 上测试。

  • @e-info128 感谢您提供该信息。我的理念是:当我在谷歌上搜索某些东西并点击此页面时,我会找到我想要的答案。 (2认同)

小智 6

您可能想使用 stunnel。

一个 GNU 程序,允许加密安全套接字层 (SSL) 内的任意 TCP 连接。

http://www.stunnel.org

这是非常 UNIX 的。用于一项简单任务的绝佳工具。